jQuery EasyUI動態新增控制元件或者ajax載入頁面後不能自動渲染問題的解決方法
阿新 • • 發佈:2019-01-30
現象:
AJAX返回的html無法做到自動渲染為EasyUI的樣式.比如:class="easyui-layout" 等
處理方法:
在html片段載入完畢後使用
Js程式碼- $.parser.parse(context)
即可重新渲染。
實現原理:
首先附上jquery.parser.js的原始碼
Js程式碼- (function($){
- $.parser = {
- auto: true,
-
plugins:['linkbutton','menu','menubutton'
- 'tree','window','dialog','datagrid',
- 'combobox','combotree','numberbox','validatebox',
- 'calendar','datebox','panel','tabs','accordion'
- ],
- parse: function(context){
- if ($.parser.auto){
-
for
- (function(){
- var name = $.parser.plugins[i];
- var r = $('.easyui-' + name, context);
- if (r.length){
- if (r[name]){
-
r[name]();
- } elseif (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"的元素