前言

扩展自$.fn.linkbutton.defaults。用于$.fn.splitbutton.defaults重写默认值对象。下载该插件翻译源码

类似菜单按钮,分割按钮也与linkbutton和菜单有关系。menubutton和splitbutton之间的区别是,splitbutton分为两部分。它只会在鼠标移动到splitbutton按钮右边的时候才会显示出“分割线”。

源码

  1. /**
  2. * jQuery EasyUI 1.3.2
  3. *
  4. *翻译 qq 1364386878 分割按钮
  5. */
  6. (function ($) {
  7. //初始化组件
  8. function init(jq) {
  9. var options = $.data(jq, "splitbutton").options;
  10. var splitbutton = $(jq);
  11. splitbutton.removeClass("s-btn-active s-btn-plain-active").addClass("s-btn");
  12. splitbutton.linkbutton($.extend({}, options, {
  13. text: options.text
  14. + "<span class=\"s-btn-downarrow\">&nbsp;</span>"
  15. }));
  16. if (options.menu) {
  17. $(options.menu).menu({
  18. onShow: function () {
  19. splitbutton.addClass((options.plain == true) ? "s-btn-plain-active" : "s-btn-active");
  20. }, onHide: function () {
  21. splitbutton.removeClass((options.plain == true) ? "s-btn-plain-active" : "s-btn-active");
  22. }
  23. });
  24. }
  25. _setdisable(jq, options.disabled);
  26. };
  27. //禁用或启用组件
  28. function _setdisable(jq, flag) {
  29. var options = $.data(jq, "splitbutton").options;
  30. options.disabled = flag;
  31. var splitbutton = $(jq);
  32. //下拉箭头
  33. var downarrow = splitbutton.find(".s-btn-downarrow");
  34. if (flag) {
  35. splitbutton.linkbutton("disable");
  36. downarrow.unbind(".splitbutton");
  37. } else {
  38. splitbutton.linkbutton("enable");
  39. downarrow.unbind(".splitbutton");
  40. downarrow.bind("click.splitbutton", function () {
  41. initMenu();
  42. return false;
  43. });
  44. var timeOutId = null;
  45. downarrow.bind("mouseenter.splitbutton", function () {
  46. timeOutId = setTimeout(function () {
  47. initMenu();
  48. }, options.duration);
  49. return false;
  50. }).bind("mouseleave.splitbutton", function () {
  51. if (timeOutId) {
  52. clearTimeout(timeOutId);
  53. }
  54. });
  55. }
  56. // 初始化组件下拉菜单
  57. function initMenu() {
  58. if (!options.menu) {
  59. return;
  60. }
  61. $("body>div.menu-top").menu("hide");
  62. $(options.menu).menu("show", { alignTo: splitbutton });
  63. splitbutton.blur();
  64. };
  65. };
  66. //初始化组件
  67. $.fn.splitbutton = function (target, parm) {
  68. if (typeof target == "string") {
  69. return $.fn.splitbutton.methods[target](this, parm);
  70. }
  71. target = target || {};
  72. return this.each(function () {
  73. var splitbutton = $.data(this, "splitbutton");
  74. if (splitbutton) {
  75. $.extend(splitbutton.options, target);
  76. } else {
  77. $.data(this, "splitbutton", {
  78. options: $.extend({},
  79. $.fn.splitbutton.defaults,
  80. $.fn.splitbutton.parseOptions(this),
  81. target)
  82. });
  83. $(this).removeAttr("disabled");
  84. }
  85. init(this);
  86. });
  87. };
  88. //默认方法
  89. $.fn.splitbutton.methods = {
  90. //返回属性对象
  91. options: function (jq) {
  92. return $.data(jq[0], "splitbutton").options;
  93. },
  94. //返回属性对象
  95. enable: function (jq) {
  96. return jq.each(function () {
  97. _setdisable(this, false);
  98. });
  99. },
  100. //启用分割按钮
  101. disable: function (jq) {
  102. return jq.each(function () {
  103. _setdisable(this, true);
  104. });
  105. },
  106. //销毁分割按钮
  107. destroy: function (jq) {
  108. return jq.each(function () {
  109. var options = $(this).splitbutton("options");
  110. if (options.menu) {
  111. $(options.menu).menu("destroy");
  112. }
  113. $(this).remove();
  114. });
  115. }
  116. };
  117. //解析器
  118. $.fn.splitbutton.parseOptions = function (target) {
  119. var t = $(target);
  120. return $.extend({}, $.fn.linkbutton.parseOptions(target),
  121. $.parser.parseOptions(target, ["menu",
  122. {
  123. plain: "boolean",
  124. duration: "number"
  125. }]));
  126. };
  127. //默认属性和事件 继承linkbutton
  128. $.fn.splitbutton.defaults = $.extend({}, $.fn.linkbutton.defaults,
  129. {
  130. plain: true,//设置为true将显示简洁效果
  131. menu: null,//用来创建一个对应菜单的选择器
  132. duration: 100//定义鼠标划过按钮时显示菜单所持续的时间,单位为毫秒
  133. });
  134. })(jQuery);

示例代码

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Basic SplitButton - jQuery EasyUI Demo</title>
  6. <link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
  7. <link rel="stylesheet" type="text/css" href="../../themes/icon.css">
  8. <link rel="stylesheet" type="text/css" href="../demo.css">
  9. <script type="text/javascript" src="../../jquery-1.8.0.min.js"></script>
  10. <script src="../../plugins2/jquery.parser.js"></script>
  11. <script src="../../plugins2/jquery.menu.js"></script>
  12. <script src="../../plugins2/jquery.linkbutton.js"></script>
  13. <script src="../../plugins2/jquery.splitbutton.js"></script>
  14. </head>
  15. <body>
  16. <h2>Basic SplitButton</h2>
  17. <div class="demo-info">
  18. <div class="demo-tip icon-tip"></div>
  19. <div>Move mouse over the arrow area of button to drop down menu.</div>
  20. </div>
  21. <div style="margin:10px 0;"></div>
  22. <div style="padding:5px;border:1px solid #ddd;">
  23. <a href="#" class="easyui-linkbutton" data-options="plain:true">Home</a>
  24. <a href="#" class="easyui-splitbutton" data-options="menu:'#mm1',iconCls:'icon-edit'">Edit</a>
  25. <a href="#" class="easyui-splitbutton" data-options="menu:'#mm2',iconCls:'icon-ok'">Ok</a>
  26. <a href="#" class="easyui-menubutton" data-options="menu:'#mm3',iconCls:'icon-help'">Help</a>
  27. </div>
  28. <div id="mm1" style="width:150px;">
  29. <div data-options="iconCls:'icon-undo'">Undo</div>
  30. <div data-options="iconCls:'icon-redo'">Redo</div>
  31. <div class="menu-sep"></div>
  32. <div>Cut</div>
  33. <div>Copy</div>
  34. <div>Paste</div>
  35. <div class="menu-sep"></div>
  36. <div>
  37. <span>Toolbar</span>
  38. <div style="width:150px;">
  39. <div>Address</div>
  40. <div>Link</div>
  41. <div>Navigation Toolbar</div>
  42. <div>Bookmark Toolbar</div>
  43. <div class="menu-sep"></div>
  44. <div>New Toolbar...</div>
  45. </div>
  46. </div>
  47. <div data-options="iconCls:'icon-remove'">Delete</div>
  48. <div>Select All</div>
  49. </div>
  50. <div id="mm2" style="width:100px;">
  51. <div data-options="iconCls:'icon-ok'">Ok</div>
  52. <div data-options="iconCls:'icon-cancel'">Cancel</div>
  53. </div>
  54. <div id="mm3" style="width:150px;">
  55. <div>Help</div>
  56. <div>Update</div>
  57. <div>
  58. <span>About</span>
  59. <div class="menu-content" style="padding:10px;text-align:left">
  60. <img src="http://www.jeasyui.com/images/logo1.png" style="width:150px;height:50px">
  61. <p style="font-size:14px;color:#444">Try jQuery EasyUI to build your modem, interactive, javascript applications.</p>
  62. </div>
  63. </div>
  64. </div>
  65.  
  66. </body>
  67. </html>

插件效果

easyui源码翻译1.32--SplitButton(分割按钮)的更多相关文章

  1. easyui源码翻译1.32+API翻译全篇导航 (提供下载源码)

    前言 EasyUI每个组件都会有 属性.方法.事件 属性 所有的属性都定义在jQuery.fn.{plugin}.defaults里面.例如,对话框属性定义在jQuery.fn.dialog.defa ...

  2. easyui源码翻译1.32--MenuButton(菜单按钮)

    前言 扩展自$.fn.linkbutton.defaults.使用$.fn.menubutton.defaults重写默认值对象..下载该插件翻译源码 菜单按钮是下拉菜单的一部分.它伴随着linkbu ...

  3. easyui源码翻译1.32--datagrid(数据表格)

    前言 此前网上有easyui1.25的源码  应该算是比较老的版本  之后又经历了1.26 . 1.3. 1.31. 1.32 .1.33.1.34  1.33开始支持css3 算是又一个转折  但是 ...

  4. easyui源码翻译1.32--EasyLoader(简单加载)

    前言 扩展自$.fn.datebox.defaults,使用$.fn.datetimebox.defaults重写默认值对象.下载该插件翻译源码 源码 /** * jQuery EasyUI 1.3. ...

  5. easyui源码翻译1.32--panel(面板)

    前言 昨天发布了表格datagrid的翻译源码 ,easyui的许多插件有依赖关系  比如datagrid 的渲染需要panel.resizable.linkbutton.pagination   今 ...

  6. easyui源码翻译1.32--Menu(菜单)

    前言 使用$.fn.menu.defaults重写默认值对象.下载该插件翻译源码 菜单组件通常用于快捷菜单.他是构建其他菜单组件的必备基础组件.比如:menubutton和splitbutton.它还 ...

  7. easyui源码翻译1.32--Combo(自定义下拉框)

    前言 扩展自$.fn.validatebox.defaults.使用$.fn.combo.defaults重写默认值对象.下载该插件翻译源码 自定义下拉框显示一个可编辑的文本框和下拉面板在html页面 ...

  8. easyui源码翻译1.32--NumberBox(数值输入框)

    前言 扩展自$.fn.validatebox.defaults.使用$.fn.numberbox.defaults重写默认值对象.下载该插件翻译源码 数值输入框是用来限制用户只能输入数值型数据的.他可 ...

  9. easyui源码翻译1.32--DateTimeBox(日期时间输入框)

    前言 扩展自$.fn.datebox.defaults,使用$.fn.datetimebox.defaults重写默认值对象.下载该插件翻译源码 和日期输入框类似,日期时间输入框允许用户选择日期和指定 ...

随机推荐

  1. ASP读取RSS

    <% @language="VBScript"%> <% Function readrss(xmlseed) dim xmlDoc dim http Set ht ...

  2. [转]Windows Shell 编程 第四章 【来源 http://blog.csdn.net/wangqiulin123456/article/details/7987933】

    第四章 文件的本质 以前,所有文件和目录都有一个确定的属性集:时间,日期,尺寸,以及表示‘只读的’,‘隐藏的,‘存档的’,或‘系统的’状态标志.然而,Windos95(及后来的WindowsNT4.0 ...

  3. Google maps not working IE11

    参考原因: http://www.easypagez.eu/maps/ieworking.html 如果还不行的话,在map的样式上加上width:100%;height:100% ;position ...

  4. (一)问候Spring4

    第一节:Spring 简介 Spring 作者:Rod Johnson: 官方网站:http://spring.io/ 最新开发包及文档下载地址:http://repo.springsource.or ...

  5. 第二十六篇、因为自定item(nav)而使系统右滑返回手势失效的解决方法

    @interface ViewController () <uigesturerecognizerdelegate> @end@implementation ViewController ...

  6. 第四篇、C_快速、冒泡、选择、插入排序、二分查找排序、归并、堆排序

    1.快速排序 实现: 1.取中间一个数作为支点 2.分别在支点的左右两边进行查找,如果左边查找到比支点大,右边查找到比支点小,就交换位置,如此循环,比支点小的数就排在了左边,比支点大的就排在右边 3. ...

  7. 【原创】关于MVC自己新建的 action,Controller提示找不到页面的问题

    一.实例: 1.比如我自己新建了一个~/view/Shop  文件夹下的IndexShop.aspx,那么在Controllers文件夹下就要对应一个ShopController.cs的Control ...

  8. lucene4.0 基于smb文件服务器的全文检索

    使用lucene 4.0版本的全文检索 所需要的jar包  网速太慢,下次有空再把jar传上来 1.FileIndex  建立索引,查询,删除,更新 package com.strongit.tool ...

  9. Linux Terminal命令

    Linux Terminal命令 1.Ctrl + a 回到命令行の「行首/head」. 2.Ctrl + e 回到命令行の「行尾/tail」, ctrl + end. 3.Ctrl + w 後向/b ...

  10. 树莓派实现TimeMachine以及samba服务

    最近一段时间感觉用移动硬盘备份Mac电脑很不方便,因为要把移动硬盘拿出来,还要插上电脑备份,看了一下AirPort,但是价钱太贵,况且只能用于Mac备份并不能用于其他的Samba服务等,感觉不太划算, ...