現象:
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"的元素
