日期:2014-05-16 浏览次数:20961 次
现象:
?????? AJAX返回的html无法做到自动渲染为EasyUI的样式.比如:class="easyui-layout" 等
?
处理方法:
????? 在html片段加载完毕后使用
$.parser.parse(context)
???? 即可重新渲染。
?
实现原理:
?
??? 首先附上jquery.parser.js的源码
(function($){
$.parser = {
auto: true,
plugins:['linkbutton','menu','menubutton','splitbutton','layout',
'tree','window','dialog','datagrid',
'combobox','combotree','numberbox','validatebox',
'calendar','datebox','panel','tabs','accordion'
],
parse: function(context){
if ($.parser.auto){
for(var i=0; i<$.parser.plugins.length; i++){
(function(){
var name = $.parser.plugins[i];
var r = $('.easyui-' + name, context);
if (r.length){
if (r[name]){
r[name]();
} else if (window.easyloader){
easyloader.load(name, function(){
r[name]();
})
}
}
})();
}
}
}
};
$(function(){
$.parser.parse();
});
})(jQuery);
?? 框架默认在页面加载完成后自动使用$.parser.parse()对整个文档进行渲染
?
$.parser.auto //是否自动进行渲染 $.parser.plugins //包含目前EasyUI框架中所有的插件名称 $.parser.parse(context) //context 为待查找的 DOM 元素集、文档或 jQuery 对象,为空时默认为整个文档 //渲染对象为: class="easyui-pluginName"的元素