一、jQuery Easy UI主要的运行原理是经过核心的代码调用插件来实现UI效果的javascript
二、jQuery Easy UI插件与插件之间的关系是:php
1、独立式插件:css
独立式插件是指:不与其余的插件具备相互的依赖关系,这些插件的用法通常相对简单html
典型的表明有:pagination(分页)、searchbox(搜索框)、progressbar(进度条)、tooltip(提示框)前端
2、叠加式插件:java
叠加式插件指的是:经过一些简单的插件去叠加而成,而且继承三大基本功能组件jquery
科普一下:三大基本功能组件是LZ,本身定义的,指的是:draggable(拖动)、droppable(放置)、resizable(调整大小),这些跟独立式插件的不一样是,这些插件每每与复杂的插件有依赖关系数组
帮助手册中的依赖关系:能够简单的理解为继承关系,也就是父类能够调用里面的属性和方法cookie
例如以menubutton(菜单按钮)为例,那么之间的依赖关系以下:框架
menubutton的HTML代码以下:
<a href="javascript:void(0)" id="mb" class="easyui-menubutton" data-options="menu:'#mm',iconCls:'icon-edit'">Edit</a> <div id="mm" 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 data-options="iconCls:'icon-remove'">Delete</div> <div>Select All</div> </div>
其中id为mm的标签可使用menu控件的属性和方法
在mm标签下面对应的Button控件可使用button的属性和方法
三、jQuery Easy UI的布局
jQuery Easy UI主要的布局思想是按照讲页面风格成为东、西、南、北、中五块模块,而后根据业务需求将里面有些模块进行隐藏,固定等处理(juqery Easy UI主要适用后台管理系统的开发,由于Easy UI过于庞大全部会印象前端页面的加载速度,并且不能进行 瀑布流布局 和 响应式布局 的开发)
HTML示例代码:
<input id="vv" class="easyui-validatebox" data-options="required:true,validType:'email'" />
JS示例代码:
//判断两次输入的密码是否相同 $.extend($.fn.validatebox.defaults.rules, { equals: { validator: function(value,param){ return value == $(param[0]).val(); }, message: 'Field do not match.' } sameVal:{ validator:function(value,param){ return value!=param; }, message:'不能与旧密码相同' }, });
注释:
$.extend(); jquery的拓展方法,用于对jquery进行拓展操做
equal:为自定的一个字段,在使用的时候能够当作是方法名,可是必须对其进行传参
$.fn.validatebox.defaults.rules 对validatebox控件默认的验证规则进行重写
value 当前控件的value值 至关于$(this).val()
param 传入参数的第一个位置的对象
使用方法:
在JavaScript中加入如下代码便可
$('vv').validatebox({ validType:'equals["#firstPassword"]', }); //将id为firstPassword传给equals
若是是要匹配多个规则的话,能够讲验证的条件依次放进数组中
示例:
$('#firstPassword').validatebox({ required:true, validType:['equals["#firstPassword"]','sameVal["123456"]'], });
在进行多个验证规则的匹配的时候,要注意匹配的前后顺序,
在同时匹配多个验证规则的时候,框架中默认的是匹配第一个验证规则,也就是不对第二个验证规则进行匹配
Easy UI换皮肤
easy ui中提供了几套皮肤供用户选择,具体位置是在
还能够直接从官网下载,一些新主题包, 下载地址
为了将当前的主题转态保存起来,要使用jquery-cookie的JS控件, 下载地址
实现换肤的逻辑
一、将全部的主题包放在同一目录下面
二、经过单击换肤按钮给指定的JS脚本传递一个值,而后获取当前主题包的CSS路径,将不一样的主题包名进行替换
注意:不能将引入的主题包写死
三、而后对指定的id的标签中的href属性进行重写
这个也就是为何要在Link标签中添加id属性的缘由
四、将传入的themeName保存到cookie中
换肤的步骤
一、引入JavaScript的coookie控件
<script type="text/javascript" src="jquery-cookie.js"></script>
二、
使用C#获取cookie中保存的值
<link id="easyuiTheme" rel="stylesheet" href=" <%= var cookie=Request.cookie['easyuiThemeName']; if(cookie==null){ return ’default‘; }else{ return Request.cookie['easyuiThemeName']; } =%> /easyui.css" type="text/css"></link>
JS的处理脚本以下:
changeTheme = function(themeName) { var $easyuiTheme = $('#easyuiTheme'); var url = $easyuiTheme.attr('href'); var href = url.substring(0, url.indexOf('themes')) + 'themes/' + themeName + '/easyui.css'; $easyuiTheme.attr('href', href); var $iframe = $('iframe'); if ($iframe.length > 0) { for ( var i = 0; i < $iframe.length; i++) { var ifr = $iframe[i]; $(ifr).contents().find('#easyuiTheme').attr('href', href); } } $.cookie('easyuiThemeName', themeName, { expires : 7 }); };
主要黄色的内容是为了嵌套模块进行主题变换用的
也就是若是在页面中嵌套一个iframe标签,那么主题变换是不会影响到iframe标签里面的变换的,由于iframe标签至关于分离成两个页面,因此也要对iframe标签重复进行替换一次
Easy UI插件的修改
注释:因为Easy UI不是开源,因此不能对其进行插件的开发,可是能够对其进行修改
以ProgressBar控件为例:
$.fn.progressbar.parseOptions=function(_12){ return $.extend({},$.parser.parseOptions(_12,["width","height","text",{value:"number"}])); }; $.fn.progressbar.defaults={width:"auto",height:22,value:0,text:"{value}%",onChange:function(_13,_14){ }};
$.fn.progressbar.parseOptions是定义控件的属性及属性传入值得类型$.fn.progressbar.defaults是定义控件的默认值其余的内容没有研究出来,但愿有研究出来的同窗一块儿探讨一下