linkbutton.js

jquery.linkbutton.js

/**
 * linkbutton - jQuery EasyUI
 *
 * Licensed under the GPL:
 *   http://www.gnu.org/licenses/gpl.txt
 *
 * Copyright 2010 stworthy [ [email protected] ]
 */
(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);

  

时间: 2024-10-14 01:55:33

linkbutton.js的相关文章

easyloader.js源代码分析

http://www.cnblogs.com/jasonoiu/p/easyloader_source_code_analysis.html Jquery easyui是一个javascript UI 组件库,使用它可以快速开发企业级的业务系统.如果你正准备开发系统后台,可以选择jquery easyui,也可以选择Ext JS.我个人的看法是,如果开发团队就两三个人,开发工期很短,就一两个月.那么选择jquery easyui就对了,jquery easyui源代码量不多,便于阅读和自行修改.

Jquery easyui 源代码分析之easyloader

Jquery easyui是一个javascript UI 组件库,使用它可以快速开发企业级的业务系统.如果你正准备开发系统后台,可以选择jquery easyui,也可以选择Ext JS.我个人的看法是,如果开发团队就两三个人,开发工期很短,就一两个月.那么选择jquery easyui就对了,jquery easyui源代码量不多,便于阅读和自行修改.而Ext JSy源代码太多,短时间很难看完,学习曲线也比较陡峭.如果人手充足,时间也富裕,可以考虑使用Ext JS来开发,毕竟Ext JS更强

EasyUI学习总结(三)——easyloader源码分析

EasyUI学习总结(三)--easyloader源码分析 easyloader模块是用来加载jquery easyui的js和css文件的,而且它可以分析模块的依赖关系,先加载依赖项.模块加载好了会调用parse模块来解析页面.把class是easyui开头的标签都转化成easyui的控件. 先看Demo1例子,再分析源代码. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>easyloader范例</tit

EasyUI学习总结(三)——easyloader源码分析(转载)

声明:这一篇文章是转载过来的,转载地址忘记了,原作者如果看到了,希望能够告知一声,我好加上去! easyloader模块是用来加载jquery easyui的js和css文件的,而且它可以分析模块的依赖关系,先加载依赖项.模块加载好了会调用parse模块来解析页面.把class是easyui开头的标签都转化成easyui的控件. 先看Demo1例子,再分析源代码. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>ea

easyui组件解析的实现思路

1. 每一个easyui组件都有一个以其组件名称命名的函数例如:linkbutton: 这个函数的功能有三部分: $.fn.linkbutton = function(options, param){ // 第一个功能:这个函数可以接受一个字符串参数,这个字符串参数通常就是 // 这个组件所提供的函数的名称,通过下面的代码就实现了,对该函数的调用 // 其实这里可以这样实现的原因是,js 不是一种强类型语言,所以他不会检查函数传递参数的类型.这就给函数传递的参数的作用可以动态变化. ??????

art.dialog的应用

最近做公司的软件项目,弹出页面window.showmodeldialog不好看.为了提高客户体验,使用了art.dialog.碰到两个问题: 1.删除的时候,弹出提示,确定后再删除,碰到linkbutton先相应href的问题.最终解决方案: asp.net部分 <a id='<%# "gvDel_"+Container.DataItemIndex %>' onclick='showdialog(this)'>删除</a><asp:LinkB

easyloader源码

1 /** 2 * easyloader - jQuery EasyUI 3 * 4 * Licensed under the GPL: 5 * http://www.gnu.org/licenses/gpl.txt 6 * 7 * Copyright 2010 stworthy [ [email protected] ] 8 * 9 */ 10 (function(){ 11 //将所有的插件,和插件资源和依赖文件放进modules对象中. 12 var modules = { 13 14 d

(一)jQuery EasyUI 的EasyLoader加载原理

1.第一次看了官网的demo,引用的是EasyLoader.js文件,而不是引用jquery.easyui.min.js文件,我就有疑问了,百度一下. jQuery EasyUI是一款基于JQuery的UI快速搭建组件.EasyLoader是可以动态加载脚本和CSS文件,也可以动态加载EasyUI已有组件,需要引用EasyLoader.js文件,注意:这里就不需要引用jquery.easyui.min.js文件了. 比如需要加载linkbutton组件,则可以用下面的两种方式来加载: 第一种通过

js 触发LinkButton点击事件,执行后台方法

页面 <asp:LinkButton ID="lbtButton" runat="server"  CssClass="lbtButton" Font-Underline="false" OnClick="lbtButton_Click"> js function clickButton(filePath, fileName){ __doPostBack('lbtButton', ''); }