parser模块是easyloader第一个加载的模块,它的主要作用,就是扫描页面上easyui开头的class标签,然后初始化成easyui控件。
/**
* parser.js,此模块主要是解析页面中easyui的控件
*/
(function($) {
$.parser = {
// 是否自动解析
auto : true,
onComplete : function(_154) {
alert("haha2");
},
// 可以被解析的控件
plugins : [ "linkbutton", "menu", "menubutton", "splitbutton", "progressbar", "tree", "combobox", "combotree", "numberbox", "validatebox", "searchbox", "numberspinner", "timespinner", "calendar", "datebox", "datetimebox", "layout", "panel",
"datagrid", "propertygrid", "treegrid", "tabs", "accordion", "window", "dialog" ],
// 解析函数
parse : function(context) {
var easyLoaderPlugins = [];//需要easyLoader解析的组件数组
for ( var i = 0; i < $.parser.plugins.length; i++) {
var name = $.parser.plugins[i];// 控件名
// 查找class为easyui-控件名的jq对象,例如,easyui-layout
var rrrr = $(".easyui-" + name, context);
if (rrrr.length) {
// 如果有这个对象,那么判断它有没有初始化函数
if (rrrr[name]) {
// 如果有直接调用
rrrr[name]();
} else {
easyLoaderPlugins.push({
name : name,
jq : rrrr
});
}
}
}
//用easyLoader自动加载并解析要用
if (easyLoaderPlugins.length && window.easyloader) {
var _156 = [];
for ( var i = 0; i < easyLoaderPlugins.length; i++) {
_156.push(easyLoaderPlugins[i].name);
}
easyloader.load(_156, function() {
for ( var i = 0; i < easyLoaderPlugins.length; i++) {
var name = easyLoaderPlugins[i].name;
var jq = easyLoaderPlugins[i].jq;
jq[name]();
}
$.parser.onComplete.call($.parser, context);
});
} else {
alert("haha1");
$.parser.onComplete.call($.parser, context);
}
}
};
//如果没用easyLoader且自动解析;每个页面都会执行此方法。是$(document).ready(function(){ })的简写方式
$(function() {
//alert("【每次页面加载完,我都会执行哦!】");
if (!window.easyloader && $.parser.auto) {
$.parser.parse();
}
});
})(jQuery);
因为本人反对使用easyloader.js, 所以想把这块代码改造一下,删除一些无用的代码,使代码更简洁,更直观。修改后代码如下:
/**
* parser.js,此模块主要是解析页面中easyui的控件
*/
(function($) {
//定义一个类,
$.parser = {
//这个方法还没看懂。。晕。
onComplete : function(_154) {
},
// 可以被解析的控件
plugins : [ "linkbutton", "menu", "menubutton", "splitbutton", "progressbar", "tree", "combobox", "combotree", "numberbox", "validatebox", "searchbox", "numberspinner", "timespinner", "calendar", "datebox", "datetimebox", "layout", "panel",
"datagrid", "propertygrid", "treegrid", "tabs", "accordion", "window", "dialog" ],
// 解析函数
parse : function(context) {
for ( var i = 0; i < $.parser.plugins.length; i++) {
var name = $.parser.plugins[i];// 控件名
// 查找class为easyui-控件名的jq对象,例如,easyui-layout
var rrrr = $(".easyui-" + name, context); //selector:用来查找的字符串,context:作为待查找的 DOM 元素集、文档或 jQuery 对象。
alert(rrrr);
if (rrrr.length) {
// 如果有这个对象,那么判断它有没有初始化函数
if (rrrr[name]) {
// 如果有直接调用
rrrr[name]();
}
}
}
//要去查一下call方法的作用,call, apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,
//因为属于Function.prototype,所以每个Function对象实例,也就是每个方法都有call, apply属性.
$.parser.onComplete.call($.parser, context);
}
};
//每个页面加载完都会执行此方法。是$(document).ready(function(){ })的简写方式
$(function() {
//alert("【每次页面加载完,我都会执行哦!】");
$.parser.parse(); //参数为空,表示
});
})(jQuery);
分享到:
相关推荐
easyui-lang-zh_CN.js easyui-lang-zh_CN.js 页面开发,使用easyui,进行汉化使用js文件
jQuery EasyUI jquery-easyui-1.5.5.6 版 API 中文版 PDF和chm版本,jQuery
EasyUI修改DateBox和DateTimeBox的默认日期格式,easyui日期出现英文的情况下加载中文的方法
easyui\easyui-accordion-demo.zip easyui\easyui-crud-demo.zip easyui\easyui-datagrid10-demo.zip easyui\easyui-datagrid11-demo.zip easyui\easyui-datagrid12-demo.zip easyui\easyui-datagrid13-demo.zip ...
easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能。 使用easyui你不需要写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面。 easyui是个完美支持HTML5网页的完整框架。 easyui...
easyui-datagrid2-demo.zip
easyui插件的支持日期汉化,分页汉化,form表单提示汉化。
easyui-bootstrap-gh-pages.zip
easyui datagrid 加载数据的时候总是加载2次,这是它的一个BUG。jquery-easyui-1.4-patch.js可以解决该问题。
jquery-easyui-EDT-1.5.5 扩展+pcdemo+移动demo+插件
jquery-easyui-1.5后台模板.zip jquery-easyui-1.5后台模板.zip jquery-easyui-1.5后台模板.zip jquery-easyui-1.5后台模板.zip
jquery-easyui-1.10.17.zip
EasyUI_05-datagrid-src.zip
jQuery EasyUI 1.5.5.5 官方完整程序包(原版)及演示(汉化,在线地址:http://www.ranzhijun.top/?p=438):(1)电脑版-翻译改编,移动设备兼容处理;(2)移动版-翻译整理。
jquery-easyui-1.7.0 官方文档以及源码,演示demo,内容详细
detailview datagrid 没有专用下载链接,现在提供专门下载文件备用 easyui常用JS jquery.min jquery.easyui.mobile jquery.easyui.min easyloader datagrid-detailview
jquery-easyui-portal.zip jquery-easyui-portal.zip jquery-easyui-portal.zip jquery-easyui-portal.zip jquery-easyui-portal.zip
jquery-easyui-1.4.2.zip,jQuery EasyUI的官方版本1.4.2,可以很快速的开发后台管理系统。
jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要...