easyui源码翻译1.32--LinkButton(按钮)
前言
使用$.fn.linkbutton.defaults重写默认值对象。下载该插件翻译源码
按钮组件使用超链接按钮创建。它使用一个普通的<a>标签进行展示。它可以同时显示一个图标和文本,或只有图标或文字。按钮的宽度可以动态和折叠/展开以适应它的文本标签。
源码
/**
* jQuery EasyUI 1.3.2
*
* 翻译:lbq
*
*g=this p=g.options
*/
(function ($) {
//初始化函数
function _init(target) {
var p = $.data(target, "linkbutton").options;
$(target).empty();
$(target).addClass("l-btn");
if (p.id) {
$(target).attr("id", p.id);
} else {
$(target).attr("id", "");
}
if (p.plain) {
$(target).addClass("l-btn-plain");
} else {
$(target).removeClass("l-btn-plain");
}
if (p.text) {
$(target).html(p.text).wrapInner("<span class=\"l-btn-left\">"
+ "<span class=\"l-btn-text\">"
+ "</span>" + "</span>");
if (p.iconCls) {
$(target).find(".l-btn-text").addClass(p.iconCls).addClass(p.iconAlign == "left" ? "l-btn-icon-left" : "l-btn-icon-right");
}
} else {
$(target).html(" ").wrapInner("<span class=\"l-btn-left\">"
+ "<span class=\"l-btn-text\">"
+ "<span class=\"l-btn-empty\"></span>"
+ "</span>" + "</span>");
if (p.iconCls) {
$(target).find(".l-btn-empty").addClass(p.iconCls);
}
}
$(target).unbind(".linkbutton").bind("focus.linkbutton", function () {
if (!p.disabled) {
$(this).find("span.l-btn-text").addClass("l-btn-focus");
}
}).bind("blur.linkbutton", function () {
$(this).find("span.l-btn-text").removeClass("l-btn-focus");
});
setDisabled(target, p.disabled);
};
//设置禁用
function setDisabled(target, disabled) {
var g = $.data(target, "linkbutton");
if (disabled) {
g.options.disabled = true;
var href = $(target).attr("href");
if (href) {
g.href = href;
$(target).attr("href", "javascript:void(0)");
}
if (target.onclick) {
g.onclick = target.onclick;
target.onclick = null;
}
$(target).addClass("l-btn-disabled");
} else {
g.options.disabled = false;
if (g.href) {
$(target).attr("href", g.href);
}
if (g.onclick) {
target.onclick = g.onclick;
}
$(target).removeClass("l-btn-disabled");
}
};
//实例化按钮
$.fn.linkbutton = function (options, parm) {
if (typeof options == "string") {
return $.fn.linkbutton.methods[options](this, parm);
}
options = options || {};
return this.each(function () {
var g = $.data(this, "linkbutton");
if (g) {
$.extend(g.options, options);
} else {
$.data(this, "linkbutton", {
options: $.extend({},
$.fn.linkbutton.defaults,
$.fn.linkbutton.parseOptions(this), options)
});
$(this).removeAttr("disabled");
}
_init(this);
});
};
//方法定义(3)
$.fn.linkbutton.methods = {
//返回属性对象
options: function (jq) {
return $.data(jq[0], "linkbutton").options;
},
//启用按钮
enable: function (jq) {
return jq.each(function () {
setDisabled(this, false);
});
},
//禁用按钮
disable: function (jq) {
return jq.each(function () {
setDisabled(this, true);
});
}
};
//解析器配置
$.fn.linkbutton.parseOptions = function (target) {
var t = $(target);
return $.extend({},
$.parser.parseOptions(target,
["id", "iconCls", "iconAlign", { plain: "boolean" }]),
{
disabled: (t.attr("disabled") ? true : undefined),
text: $.trim(t.html()),
iconCls: (t.attr("icon") || t.attr("iconCls"))
});
};
//默认值对象(6)
$.fn.linkbutton.defaults = {
id: null,//组件的ID属性
disabled: false,//为true时禁用按钮
plain: false,//为true时显示简洁效果
text: "",//按钮文字
iconCls: null,//显示在按钮文字左侧的图标(16x16)的CSS类ID
iconAlign: "left"//按钮图标位置。可用值有:'left','right'
};
})(jQuery);
示例代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Basic LinkButton - 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>
</head>
<body>
<h2>Basic LinkButton</h2>
<div class="demo-info">
<div class="demo-tip icon-tip"></div>
<div>Buttons can be created from <a/> link.</div>
</div>
<div style="margin:10px 0;"></div>
<div style="padding:5px;">
<a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-add'">Add</a>
<a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-remove'">Remove</a>
<a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-save'">Save</a>
<a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-cut',disabled:true">Cut</a>
<a href="#" class="easyui-linkbutton">Text Button</a>
</div> </body>
</html>
插件效果

easyui源码翻译1.32--LinkButton(按钮)的更多相关文章
- easyui源码翻译1.32+API翻译全篇导航 (提供下载源码)
前言 EasyUI每个组件都会有 属性.方法.事件 属性 所有的属性都定义在jQuery.fn.{plugin}.defaults里面.例如,对话框属性定义在jQuery.fn.dialog.defa ...
- easyui源码翻译1.32--datagrid(数据表格)
前言 此前网上有easyui1.25的源码 应该算是比较老的版本 之后又经历了1.26 . 1.3. 1.31. 1.32 .1.33.1.34 1.33开始支持css3 算是又一个转折 但是 ...
- easyui源码翻译1.32--MenuButton(菜单按钮)
前言 扩展自$.fn.linkbutton.defaults.使用$.fn.menubutton.defaults重写默认值对象..下载该插件翻译源码 菜单按钮是下拉菜单的一部分.它伴随着linkbu ...
- easyui源码翻译1.32--SplitButton(分割按钮)
前言 扩展自$.fn.linkbutton.defaults.用于$.fn.splitbutton.defaults重写默认值对象.下载该插件翻译源码 类似菜单按钮,分割按钮也与linkbutton和 ...
- easyui源码翻译1.32--Pagination(分页)
前言 使用$.fn.pagination.defaults重写默认值对象下载该插件翻译源码 该分页控件允许用户导航页面的数据.它支持页面导航和页面长度选择的选项设置.用户可以在分页控件上添加自定义按钮 ...
- easyui源码翻译1.32--SearchBox(搜索框)
前言 使用$.fn.searchbox.defaults重写默认值对象.下载该插件翻译源码 搜索框提示用户需要输入搜索的值.它可以结合一个菜单,允许用户选择不同的搜索类别.在用户按下回车键或点击组件右 ...
- easyui源码翻译1.32--panel(面板)
前言 昨天发布了表格datagrid的翻译源码 ,easyui的许多插件有依赖关系 比如datagrid 的渲染需要panel.resizable.linkbutton.pagination 今 ...
- easyui源码翻译1.32--Tabs(选项卡)
前言 使用$.fn.tabs.defaults重写默认值对象.下载该插件翻译源码 选项卡显示一批面板.但在同一个时间只会显示一个面板.每个选项卡面板都有头标题和一些小的按钮工具菜单,包括关闭按钮和其他 ...
- easyui源码翻译1.32--Dialog(对话框窗口)
前言 扩展自$.fn.window.defaults.使用$.fn.dialog.defaults重写默认值对象.下载该插件翻译源码 该对话框是一种特殊类型的窗口,它在顶部有一个工具栏,在底部有一个按 ...
随机推荐
- JAXB - Annotations, Top-level Elements: XmlRootElement
A class that describes an XML element that is to be a top-level element, i.e., one that can function ...
- 用ASP生成RSS
<% Response.Clear Response.CharSet="gb2312" '数据集 Response.ContentType="text/xml&qu ...
- 批处理 Mysql Findstr
@set Dump_IP=localhost @set User_Name=root @set Password=1234 @set curPath=%~dp0 mysql -h %Dump_IP% ...
- Apache配置多个监听端口
以前做PC上的,都是配置一个端口,整一大堆的虚拟目录: 在 \conf\extra下找到httpd-vhosts.conf这个配置文件,想下面这样配置就行,监听80端口,访问相应的ServerName ...
- JavaScript中关于创建对象的笔记
1,最基本的两种创建对象的方式:构造函数|| 字面量 构造函数: var person = new Object(); person.name = "chen1zee1"; per ...
- 两种js监听滚轮事件的方式
前段时间在写前端的时候,需要监听浏览器的滚轮事件 网上查了一下,找到两种监听滚轮事件的方法: 一.原生js通过window.onscroll监听 //window.onscroll = functio ...
- Java架构必会几大技术点(转)
关于学习架构,必须会的几点技术: 1. java反射技术 2. xml文件处理 3. properties属性文件处理 4. 线程安全机制 5. annocation注解 6. 设计模式 7. 代理机 ...
- ZOJ 1122 Clock(模拟)
Clock Time Limit: 2 Seconds Memory Limit: 65536 KB You are given a standard 12-hour clock with ...
- C. Sonya and Queries
http://codeforces.com/contest/714/problem/C 看到这题目,想想,肯定不能暴力啊,如果用map,如何快速找到满足要求的数目,然后,长度18,我想,这不是熟悉的t ...
- 暑假集训(3)第二弹 -----Jungle Roads(Hdu1301)
问题梗概:自从上次某个acmer来设计了拉格瑞圣岛的交通路线后,岛上的酋长就相当苦恼,他发现,虽然这些修好的公路便利了岛上的 交通,并且让拉格瑞圣岛的旅游业更加兴旺,甚至他们还收到了一笔不小的国际资金 ...