easyui之linkbutton控件分析
来源:互联网 发布:金相检验软件系统 编辑:程序博客网 时间:2024/05/30 02:53
/** * linkbutton - jQuery EasyUI * * Licensed under the GPL: * http://www.gnu.org/licenses/gpl.txt * * Copyright 2010 stworthy [ stworthy@gmail.com ] *//** * 首先,一个按钮的html元素结构如下: * <a href="#" class="easyui-linkbutton l-btn" onclick="load2()"><span class="l-btn-left"><span class="l-btn-text">Load Dialog</span></span></a> * * 针对某个元素创建了按钮后,设置的参数及内容都会存储在$.data($(el),'linkbutton') */(function($){ function createButton(target) { //首先取出来之前拼接好的参数对象 var opts = $.data(target, 'linkbutton').options; //先不dom元素内容清空 $(target).empty(); //给最外层加类'l-btn' $(target).addClass('l-btn'); //设置外层的id 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'); } } //这个方法,在paser解析完页面并加载完所有引用到的模块后会被调用,调用的形式如:$(".easyui-linkbutton")["linkbutton"]() $.fn.linkbutton = function(options){ if (typeof options == 'string'){ //如果参数是字符串 switch(options){ case 'options': //如果是'option'就返回设置的option的对象 return $.data(this[0], 'linkbutton').options; case 'enable': //如果是'enable'就设置当前控件可用 return this.each(function(){ setDisabled(this, false); }); case 'disable': //如果是'disable'就设置当前控件不可用 return this.each(function(){ setDisabled(this, true); }); } } /*下面的都是在组装option对象*/ options = options || {}; return this.each(function(){ //取出原来就有的设置项 var state = $.data(this, 'linkbutton'); if (state){ //如果有原来的设置,就用现在的参数去压盖以前的参数 $.extend(state.options, options); } else { //如果没有原来的设置,就根据dom元素初始化配置,然后缓存到当前对象的'linkbutton'属性里面 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'); } //组装的参数对象都存储到了对象的'linbutton'属性里,下面就开始真个创建按钮 createButton(this); }); }; //创建新的按钮时默认的参数值 $.fn.linkbutton.defaults = { id: null, disabled: false, plain: false, text: '', iconCls: null }; })(jQuery);
阅读全文
0 0
- easyui之linkbutton控件分析
- easyUI(6)linkbutton控件
- EasyUI之Linkbutton按钮
- easyui之tree控件分析
- easyui之panel控件分析
- easyui之datagrid控件分析
- easyui之combo控件分析
- easyui之pagination控件分析
- easyui之validatebox控件分析
- easyUI LinkButton,
- 003. EsayUI系列之easyui-linkbutton
- 学习 easyui 之四:禁用 linkbutton 问题
- JQuery EasyUI 之LinkButton(按钮)组件
- 【EasyUI】输入框box、linkbutton、menubutton、提示控件
- easyui之draggable控件分析,待完善
- Linkbutton控件
- LinkButton控件
- 用户界面框架jQuery EasyUI示例大全之PropertyGrid & LinkButton
- 启动两个tomcat用Nginx服务器进行负载均衡
- Angular V4.0 几个应用场景
- bzoj1747[Usaco2005 open]Expedition 探险 优先队列+贪心
- linux添加自定义命令
- 无向图匹配的带花树算法
- easyui之linkbutton控件分析
- 项目管理 关于进度的安排
- 数据结构:线性表(顺序存储结构)
- JAVA面向对象之包装类
- VMWare下的CentOs的磁盘扩容以及与windows文件系统的关系对比
- Thinkphp5学习(14)读取器和修改器
- Excel应用-人生格子(30*30)的绘制
- Android 常用控件(二)
- ViewPager实现图片无限轮播(下)