easyui源码翻译1.32--MenuButton(菜单按钮)
前言
扩展自$.fn.linkbutton.defaults。使用$.fn.menubutton.defaults重写默认值对象。。下载该插件翻译源码
菜单按钮是下拉菜单的一部分。它伴随着linkbutton和menu组件。在用户点击linkbutton之前菜单是隐藏的,当用户用鼠标点击或移动到linkbutton上面的时候菜单才会显示。
源码
/**
* jQuery EasyUI 1.3.2
*
*翻译 qq 1364386878 菜单按钮
*/
(function ($) {
//初始化方法
function init(jq) {
var options = $.data(jq, "menubutton").options;
var btn = $(jq);
btn.removeClass("m-btn-active m-btn-plain-active").addClass("m-btn");
btn.linkbutton($.extend({}, options, { text: options.text + "<span class=\"m-btn-downarrow\"> </span>" }));
if (options.menu) {
$(options.menu).menu({
onShow: function () {
btn.addClass((options.plain == true) ? "m-btn-plain-active" : "m-btn-active");
}, onHide: function () {
btn.removeClass((options.plain == true) ? "m-btn-plain-active" : "m-btn-active");
}
});
}
_enable(jq, options.disabled);
};
//启用菜单按钮
function _enable(jq, disabled) {
var options = $.data(jq, "menubutton").options;
options.disabled = disabled;
var menubutton = $(jq);
if (disabled) {
menubutton.linkbutton("disable");
menubutton.unbind(".menubutton");
} else {
menubutton.linkbutton("enable");
menubutton.unbind(".menubutton");
menubutton.bind("click.menubutton", function () {
showMenu();
return false;
});
var timer = null;
menubutton.bind("mouseenter.menubutton", function () {
timer = setTimeout(function () {
showMenu();
}, options.duration);
return false;
}).bind("mouseleave.menubutton", function () {
if (timer) {
clearTimeout(timer);
}
});
}
function showMenu() {
if (!options.menu) {
return;
}
$("body>div.menu-top").menu("hide");
$(options.menu).menu("show", { alignTo: menubutton });
menubutton.blur();
};
}; //实例化组件
$.fn.menubutton = function (target, parm) {
if (typeof target == "string") {
return $.fn.menubutton.methods[target](this, parm);
}
target = target || {};
return this.each(function () {
var menubutton = $.data(this, "menubutton");
if (menubutton) {
$.extend(menubutton.options, target);
} else {
$.data(this, "menubutton", {
options: $.extend({},
$.fn.menubutton.defaults,
$.fn.menubutton.parseOptions(this),
target)
});
$(this).removeAttr("disabled");
}
init(this);
});
};
//默认方法
$.fn.menubutton.methods = {
//返回属性对象
options: function (jq) {
return $.data(jq[0], "menubutton").options;
},
//启用菜单按钮
enable: function (jq) {
return jq.each(function () {
_enable(this, false);
});
},
//禁用菜单按钮
disable: function (jq) {
return jq.each(function () {
_enable(this, true);
});
},
//销毁菜单按钮
destroy: function (jq) {
return jq.each(function () {
var options = $(this).menubutton("options");
if (options.menu) {
$(options.menu).menu("destroy");
}
$(this).remove();
});
}
};
//解析器
$.fn.menubutton.parseOptions = function (target) {
var t = $(target);
return $.extend({},
$.fn.linkbutton.parseOptions(target),
$.parser.parseOptions(target, ["menu", { plain: "boolean", duration: "number" }]));
};
//默认属性 继承了linkbutton
$.fn.menubutton.defaults = $.extend({},
$.fn.linkbutton.defaults, {
plain: true,//为true时显示简易效果
menu: null,//用来创建一个对应菜单的选择器
duration: 100//用来创建一个对应菜单的选择器
});
})(jQuery);
示例代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Basic MenuButton - jQuery EasyUI Demo</title>
<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
<link rel="stylesheet" type="text/css" href="../demo.css">
<script type="text/javascript" src="../../jquery-1.8.0.min.js"></script>
<script src="../../plugins2/jquery.parser.js"></script>
<script src="../../plugins2/jquery.linkbutton.js"></script>
<script src="../../plugins2/jquery.menu.js"></script>
<script src="../../plugins2/jquery.menubutton.js"></script>
</head>
<body>
<h2>Basic MenuButton</h2>
<div class="demo-info">
<div class="demo-tip icon-tip"></div>
<div>Move mouse over the button to drop down menu.</div>
</div>
<div style="margin:10px 0;"></div>
<div style="padding:5px;border:1px solid #ddd">
<a href="#" class="easyui-linkbutton" data-options="plain:true">Home</a>
<a href="#" class="easyui-menubutton" data-options="menu:'#mm1',iconCls:'icon-edit'">Edit</a>
<a href="#" class="easyui-menubutton" data-options="menu:'#mm2',iconCls:'icon-help'">Help</a>
<a href="#" class="easyui-menubutton" data-options="menu:'#mm3'">About</a>
</div>
<div id="mm1" style="width:150px;">
<div data-options="iconCls:'icon-undo'">Undo</div>
<div data-options="iconCls:'icon-redo'">Redo</div>
<div class="menu-sep"></div>
<div>Cut</div>
<div>Copy</div>
<div>Paste</div>
<div class="menu-sep"></div>
<div>
<span>Toolbar</span>
<div style="width:150px;">
<div>Address</div>
<div>Link</div>
<div>Navigation Toolbar</div>
<div>Bookmark Toolbar</div>
<div class="menu-sep"></div>
<div>New Toolbar...</div>
</div>
</div>
<div data-options="iconCls:'icon-remove'">Delete</div>
<div>Select All</div>
</div>
<div id="mm2" style="width:100px;">
<div>Help</div>
<div>Update</div>
<div>About</div>
</div>
<div id="mm3" class="menu-content" style="background:#f0f0f0;padding:10px;text-align:left">
<img src="http://www.jeasyui.com/images/logo1.png" style="width:150px;height:50px">
<p style="font-size:14px;color:#444;">Try jQuery EasyUI to build your modem, interactive, javascript applications.</p>
</div>
</body>
</html>
插件效果

easyui源码翻译1.32--MenuButton(菜单按钮)的更多相关文章
- easyui源码翻译1.32--Menu(菜单)
前言 使用$.fn.menu.defaults重写默认值对象.下载该插件翻译源码 菜单组件通常用于快捷菜单.他是构建其他菜单组件的必备基础组件.比如:menubutton和splitbutton.它还 ...
- easyui源码翻译1.32+API翻译全篇导航 (提供下载源码)
前言 EasyUI每个组件都会有 属性.方法.事件 属性 所有的属性都定义在jQuery.fn.{plugin}.defaults里面.例如,对话框属性定义在jQuery.fn.dialog.defa ...
- easyui源码翻译1.32--SplitButton(分割按钮)
前言 扩展自$.fn.linkbutton.defaults.用于$.fn.splitbutton.defaults重写默认值对象.下载该插件翻译源码 类似菜单按钮,分割按钮也与linkbutton和 ...
- easyui源码翻译1.32--datagrid(数据表格)
前言 此前网上有easyui1.25的源码 应该算是比较老的版本 之后又经历了1.26 . 1.3. 1.31. 1.32 .1.33.1.34 1.33开始支持css3 算是又一个转折 但是 ...
- easyui源码翻译1.32--SearchBox(搜索框)
前言 使用$.fn.searchbox.defaults重写默认值对象.下载该插件翻译源码 搜索框提示用户需要输入搜索的值.它可以结合一个菜单,允许用户选择不同的搜索类别.在用户按下回车键或点击组件右 ...
- easyui源码翻译1.32--panel(面板)
前言 昨天发布了表格datagrid的翻译源码 ,easyui的许多插件有依赖关系 比如datagrid 的渲染需要panel.resizable.linkbutton.pagination 今 ...
- easyui源码翻译1.32--EasyLoader(简单加载)
前言 扩展自$.fn.datebox.defaults,使用$.fn.datetimebox.defaults重写默认值对象.下载该插件翻译源码 源码 /** * jQuery EasyUI 1.3. ...
- easyui源码翻译1.32--Tabs(选项卡)
前言 使用$.fn.tabs.defaults重写默认值对象.下载该插件翻译源码 选项卡显示一批面板.但在同一个时间只会显示一个面板.每个选项卡面板都有头标题和一些小的按钮工具菜单,包括关闭按钮和其他 ...
- easyui源码翻译1.32--Calendar(日历)
前言 前几天加班比较忙 未能及时更新翻译的 今天多发布几篇..下载该插件翻译源码 日历控件显示一个月的日历,允许用户选择日期和移动到下一个或上一个月.默认情况下,一周的第一天是周日.它可以通过设置'f ...
随机推荐
- java 注解Annotation
什么是注解? 注解,顾名思义,注解,就是对某一事物进行添加注释说明,会存放一些信息,这些信息可能对以后某个时段来说是很有用处的. java注解又叫java标注,java提供了一套机制,使得我们可以对 ...
- JS原型与原型链终极详解(转)
JavaScript原型及原型链详解 一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object,Function 是JS自带的函数对象. ...
- Php 的替代语法
替代语法 为什么会有替代语法: php是嵌入在html文档中的脚本语言,Php可以动态生成html标签,但是php主要功能并不是生成html标签,主要用于动态的生成数据(数据库中的数据).如果 ...
- Java的基本数据类型
java的基本数据类型是四类八种: 整型 byte 1字节 8位 short 2字节 16位 int 4字节 32位 long 8字节 64位 在hibernate自动映射中会根据数字长度,选 ...
- Custom Action : dynamic link library
工具:VS2010, Installshield 2008 实现功能: 创建一个C++ win32 DLL的工程,MSI 工程需要调用这个DLL,并将Basic MSI工程中的两个参数,传递给DLL, ...
- 九度OJ 1514 数值的整数次方【算法】
题目地址:http://ac.jobdu.com/problem.php?pid=1514 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的expo ...
- 责任链模式(Chain of Responsibility Pattern)
责任链模式:可以为某个请求创建一个对象链.每个对象依序检查此请求,并对其处理,或者把它传给链中的下一个对象. 责任链上的对象负责处理请求,客户只需要将请求发送到责任链上即可,无需关心处理的细节和请求的 ...
- 带你初识Angular中MVC模型
简介 MVC是一种使用 MVC(Model View Controller 模型-视图-控制器)设计模式,该模型的理念也被许多框架所吸纳,比如,后端框架(Struts.Spring MVC等).前端框 ...
- glDatePicker-2.0 日历插件
昨天用的日历插件在绑定数据的时候出现了问题,所以今天换了这个glDatePicker-2.0 日历插件 这是我修改后的样式 默认样式是这样的. 我的代码 index.html <!doctype ...
- jquery ajax php 无刷新上传文件 带 遮罩 进度条 效果的哟
在很多项目中都会叫用户上传东西这些的,自从接触了jquery 和ajax之后就不管做什么,首先都会想到这个,我这个人呢?是比较重视客户体验的,这次我这边负责的是后台板块,然后就有一块是要求用户上传照片 ...