jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
Posted on 2012-09-13 16:53 sunjie 阅读(14216) 评论(4) 编辑 收藏 举报现象:
AJAX返回的html无法做到自动渲染为EasyUI的样式.比如:class="easyui-layout" 等
处理方法:
在html片段加载完毕后使用
Js代码
- $.parser.parse(context)
即可重新渲染。
实现原理:
首先附上jquery.parser.js的源码
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()对整个文档进行渲染
Js代码
- $.parser.auto //是否自动进行渲染
- $.parser.plugins //包含目前EasyUI框架中所有的插件名称
- $.parser.parse(context)
- //context 为待查找的 DOM 元素集、文档或 jQuery 对象,为空时默认为整个文档
- //渲染对象为: class="easyui-pluginName"的元素