linkbutton.js
jquery.linkbutton.js
/**
* linkbutton - jQuery EasyUI
*
* Licensed under the GPL:
* http://www.gnu.org/licenses/gpl.txt
*
* Copyright 2010 stworthy [ stworthy@gmail.com ]
*/
(function($){ function createButton(target) {
var opts = $.data(target, 'linkbutton').options; $(target).empty();
$(target).addClass('l-btn');
if (opts.id){
$(target).attr('id', opts.id);
} else {
$(target).removeAttr('id');
}
if (opts.plain){
$(target).addClass('l-btn-plain');
} else {
$(target).removeClass('l-btn-plain');
} if (opts.text){
$(target).html(opts.text).wrapInner(
'<span class="l-btn-left">' +
'<span class="l-btn-text">' +
'</span>' +
'</span>'
);
if (opts.iconCls){
$(target).find('.l-btn-text').addClass(opts.iconCls).css('padding-left', '20px');
}
} else {
$(target).html(' ').wrapInner(
'<span class="l-btn-left">' +
'<span class="l-btn-text">' +
'<span class="l-btn-empty"></span>' +
'</span>' +
'</span>'
);
if (opts.iconCls){
$(target).find('.l-btn-empty').addClass(opts.iconCls);
}
} setDisabled(target, opts.disabled);
} function setDisabled(target, disabled){
var state = $.data(target, 'linkbutton');
if (disabled){
state.options.disabled = true;
var href = $(target).attr('href');
if (href){
state.href = href;
$(target).attr('href', 'javascript:void(0)');
}
var onclick = $(target).attr('onclick');
if (onclick) {
state.onclick = onclick;
$(target).attr('onclick', null);
}
$(target).addClass('l-btn-disabled');
} else {
state.options.disabled = false;
if (state.href) {
$(target).attr('href', state.href);
}
if (state.onclick) {
target.onclick = state.onclick;
}
$(target).removeClass('l-btn-disabled');
}
}
/**
* 扩展jQuery对象的属性方法
*/
$.fn.linkbutton = function(options){
if (typeof options == 'string'){
switch(options){
case 'options':
return $.data(this[0], 'linkbutton').options;
case 'enable':
return this.each(function(){
setDisabled(this, false);
});
case 'disable':
return this.each(function(){
setDisabled(this, true);
});
}
} options = options || {};
return this.each(function(){
var state = $.data(this, 'linkbutton');
if (state){
$.extend(state.options, options);
} else {
var t = $(this);
$.data(this, 'linkbutton', {
options: $.extend({}, $.fn.linkbutton.defaults, {
id: t.attr('id'),
disabled: (t.attr('disabled') ? true : undefined),
plain: (t.attr('plain') ? t.attr('plain') == 'true' : undefined),
text: $.trim(t.html()),
iconCls: t.attr('icon')
}, options)
});
t.removeAttr('disabled');
} createButton(this);
});
}; $.fn.linkbutton.defaults = {
id: null,
disabled: false,
plain: false,
text: '',
iconCls: null
}; })(jQuery);
linkbutton.js的更多相关文章
- easyloader.js源代码分析
http://www.cnblogs.com/jasonoiu/p/easyloader_source_code_analysis.html Jquery easyui是一个javascript UI ...
- 3.EasyUI学习总结(三)——easyloader源码分析
easyloader模块是用来加载jquery easyui的js和css文件的,即easyloader可以在调用的时候自动加载当前页面所需的文件,不用再自己引用, 而且它可以分析模块的依赖关系,先加 ...
- easyloader源码
/** * easyloader - jQuery EasyUI * * Licensed under the GPL: * http://www.gnu.org/licenses/gpl.txt * ...
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之二---用户管理源码分享
使用Jquery+EasyUI 进行框架项目开发案例讲解之二 用户管理源码分享 在上一篇文章<使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享>我们分享 ...
- easyui源码翻译1.32--datagrid(数据表格)
前言 此前网上有easyui1.25的源码 应该算是比较老的版本 之后又经历了1.26 . 1.3. 1.31. 1.32 .1.33.1.34 1.33开始支持css3 算是又一个转折 但是 ...
- easyui源码翻译1.32--EasyLoader(简单加载)
前言 扩展自$.fn.datebox.defaults,使用$.fn.datetimebox.defaults重写默认值对象.下载该插件翻译源码 源码 /** * jQuery EasyUI 1.3. ...
- easyui源码翻译1.32--Pagination(分页)
前言 使用$.fn.pagination.defaults重写默认值对象下载该插件翻译源码 该分页控件允许用户导航页面的数据.它支持页面导航和页面长度选择的选项设置.用户可以在分页控件上添加自定义按钮 ...
- easyui源码翻译1.32--SearchBox(搜索框)
前言 使用$.fn.searchbox.defaults重写默认值对象.下载该插件翻译源码 搜索框提示用户需要输入搜索的值.它可以结合一个菜单,允许用户选择不同的搜索类别.在用户按下回车键或点击组件右 ...
- easyui源码翻译1.32--Tabs(选项卡)
前言 使用$.fn.tabs.defaults重写默认值对象.下载该插件翻译源码 选项卡显示一批面板.但在同一个时间只会显示一个面板.每个选项卡面板都有头标题和一些小的按钮工具菜单,包括关闭按钮和其他 ...
随机推荐
- Effective C++学习笔记——构造/析构/拷贝运算
条款9:决不再构造和析构过程中调用virtual函数,包括通过函数间接调用virtual函数. 应用:想在一个继承体系中,一个derived class被创建时,某个调用(例如生成相应的日志log)会 ...
- cocos2dx mac环境搭建
1)下载cocos2dx 2.2.3并解压
- 【Perl学习笔记】1.perl的ref 函数
perl有引用的概念:一组数据实际上是另一组数据的引用.这些引用称为指针,第一组数据中存放的是第二组数据的头地址.引用的方式被用得相当普遍,特别是在面向对象的模块.函数的参数传递等常见.但perl对每 ...
- Home | eMine: Web Page Transcoding Based on Eye Tracking Project Page
Home | eMine: Web Page Transcoding Based on Eye Tracking Project Page The World Wide Web (web) has m ...
- 疯狂的补贴,广州司机都被Uber触动
“上线的司机起码少了一半.” 或许是因为长期工作超过12个小时的缘故,39岁的广州人民优步司机姜德昌看上去双眼浮肿,但精力充沛.这是5月8日的一个下午,一周之前他所服务的Uber广州分公司被查封. 据 ...
- pv ticketlock解决虚拟环境下的spinlock问题
最近看邮件,有注意到pv ticketlock相关的消息,貌似jeremy 几年前的东东,终于将要被收录到linux 3.12里面. 先说下pv ticketlock这东西,http://blog.x ...
- SASS组件开发
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- 【微信公众号】WeixinJSBridge.call('closeWindow')无效
公众号上面使用iframe嵌套子页面,然而子页面无法使用WeixinJSBridge.call('closeWindow') 这时候必须在函数前面加上parent.,比如parent.WeixinJS ...
- 解压版本 Tomcat配置--转
http://qsfwy.iteye.com/blog/429973 一 配置JDK 1.下载jdk下载后,解压,假设为D:\Program Files\Java\jdk1.5.0_08,要确保bin ...
- JavaWeb学习过程 之c3p0的使用
这几天在学习使用MVC模式来做几个小项目,在学习的过程中,用到了数据库连接池.便特意去学习了一下. 一.谈一谈为什么要使用数据库连接池 在开发基于数据库的web程序时,传统的模式(在servlet,b ...