zoukankan      html  css  js  c++  java
  • JQueryeasyui 分析(1)

         下载了jquery-easyui的源码,做简单分析。

         easyui的代码库结构很简单。n个控件(widget)的文件(比如jquery.calendar.js, 一看就明白它是日历组件咯)加上两个基础文件--easyloader.js 和parser.js;

         easyloader.js 话说是负责加载每个widget的Js文件和css文件的,当然也负责把parser.js给load近来。

      首先看看easyloader.js:

       这个js里有一个modules对象:

    var modules={messager:{
    js:'jquery.messager.js',
    css:'messager.css',
    dependencies:['linkbutton','window','progressbar']
    },
    //... 省略其他
    }

     这个代码段messager自然是easyui里一个widget,js,css属性都是widget对应的文件名;

    dependencies 是依赖项;也就是说加载messager的时候先要把linkbutton,window,progressbar先加载进来。

    加载widget的方法一目了然,是loadJS,loadCss,loadModule 这几个方法。

    二:Parser.JS
        easyui的widget都是声明式的,比如:  <a href="#"  class="easyui-linkbutton" data-options="iconCls:'icon-add'">Add</a>  

     声明class为easyui-linkbutton,则easyui库会把这个超链接变成按钮。 那么easyui库就必须读到这个class,然后转换。

    转换在parser.js 的parse方法中进行。

         在parser.js 中有一个plugins数组,保存了所有easyui的widget名称,如下代码:

    plugins:['linkbutton','menu','menubutton','splitbutton','progressbar',
    'tree','combobox','combotree','numberbox','validatebox','searchbox',
    'numberspinner','timespinner','calendar','datebox','datetimebox','slider',
    'layout','panel','datagrid','propertygrid','treegrid','tabs','accordion','window','dialog'
    ],

    然后parse方法循环数组,每循环到一个widget名,就从网页中获取相关的jquery对象

    parse: function(context){
    var aa = [];
    for(var i=0; i<$.parser.plugins.length; i++){  //循环widget数组
    var name = $.parser.plugins[i];
    var r = $('.easyui-' + name, context); //从网页中查找shen
    if (r.length){
      if (r[name]){
      r[name]();
    } else {
      aa.push({name:name,jq:r});
    }
    }
    }

    余下就是调用easyloader进行加载了。

    有一个问题还没明白,当把所有的widget合并到一个js文件里的时候,easyloader的load方法,还需要么?这个要继续分析他的代码了。。

    很可惜,下载的代码并不是最新的版本。作者似乎故意只发上一个版本的源码。最新的技术,国之利器,不可示人啊。

  • 相关阅读:
    js判断是否第一次访问跳转
    dt系统中tag如何使用like与%来进行模糊查询
    DT图库列表修改内容标题字数
    第二周冲刺第四天个人博客
    04《梦断代码》阅读笔记01
    第二周冲刺第三天个人博客
    03《构建之法》阅读笔记03
    第二周冲刺第二天个人博客
    02《构建之法》阅读笔记02
    第二周冲刺第一天个人博客
  • 原文地址:https://www.cnblogs.com/xinchuang/p/2736247.html
Copyright © 2011-2022 走看看