zoukankan      html  css  js  c++  java
  • EasyUI学习总结(四)——parser源码分析

      parser模块是easyloader第一个加载的模块,它的主要作用,就是扫描页面上easyui开头的class标签,然后初始化成easyui控件。

     1     /**
     2      * parser模块主要是解析页面中easyui的控件
     3      */
     4     $.parser = {
     5         // 是否自动解析
     6         auto: true,
     7 
     8         // 可以被解析的控件
     9         plugins:['linkbutton','menu','menubutton','splitbutton','layout',
    10                  'tree','window','dialog','datagrid',
    11                  'combobox','combotree','numberbox','validatebox',
    12                  'calendar','datebox','panel','tabs','accordion'
    13         ],
    14 
    15         // 解析函数
    16         parse: function(context){
    17             if ($.parser.auto){
    18                 for(var i=0; i<$.parser.plugins.length; i++){
    19                     (function(){
    20                         // 控件名
    21                         var name = $.parser.plugins[i];
    22                         // 查找class为easyui-控件名的jq对象,例如,easyui-layout
    23                         var r = $('.easyui-' + name, context);
    24 
    25                         if (r.length){
    26                             // 如果有这个对象,那么判断它有没有初始化函数
    27                             if (r[name]){
    28                                 // 如果有直接调用
    29                                 r[name]();
    30                             } else if (window.easyloader){
    31                                 // 如果没有用easyloader把模块的js文件载入进来,再调用
    32                                 easyloader.load(name, function(){
    33                                     r[name]();
    34                                 })
    35                             }
    36                         }
    37                     })();
    38                 }
    39             }
    40         }
    41     };
    42 
    43     // 调用parse方法,实际上easyloader中已经调用了,我估计这个是给不是easyloader加载时使用的
    44     $(function(){
    45         $.parser.parse();
    46     });
    47 })(jQuery);
  • 相关阅读:
    laravel一对多
    laravel如何使用软删除
    java如何使用scanner
    java实现99乘法表
    git commit -am '本次提交描述'与 git commit -m '本次提交描述'
    django-pip安装
    pip切换阿里云镜像(国内镜像)
    [leetcode] Divide Two Integers
    [leetcode] Remove Duplicates from Sorted Array
    [leetcode] Remove Element
  • 原文地址:https://www.cnblogs.com/xdp-gacl/p/4082561.html
Copyright © 2011-2022 走看看