zTree的核心

來源:互聯網
上載者:User

標籤:on()   核心   init   jquer   treeset   沒有   傳遞   cal   htc   

zTree的核心:
   *  結構
       (function($){
           //常量部分
           //申明常量是因為這些資料是不能改變的,如果成了對象的屬性,很容易就改變了
           var ZTREE_NODECREATED = "ZTREE_NODECREATED";
           var ZTREE_CLICK = "ZTREE_CLICK";
           var ZTREE_RIGHTCLICK = "ZTREE_RIGHTCLICK";
           //外掛程式方法  提供給外部存取的方法
           $.fn.zTree = function(zTreeSetting, zTreeNodes) {
                //聲明一個setting
                var setting = {
                    showLine: true,
                    checkType: {
                         "Y": "ps",
                         "N": "ps"
                    }
                    .......
                };
               //判斷是否傳遞了第一個參數
               if(zTreeSetting){
                   //把使用者的setting替換掉原來的setting的值
                   $.extend(setting, zTreeSetting);
               }
               //擷取樹的容器ID
               setting.treeObjId = this.attr("id");
               //樹的容器
               setting.treeObj = this;
               //綁定自訂事件
               bindTreeNodes(setting, this);
               //通過在zTreePlugin函數中返回一個json格式的對象,而這個對象中封裝被公開的方法(API)
               //因為是在zTree方法中返回的時候new了zTreePlugin(),所以在用戶端不需要知道zTreePlugin的細節
               return new zTreePlugin().init(this);
           }
           //私人方法
           function bindTreeNodes(setting, treeObj) {
               //事件的聲明
               treeObj.unbind(ZTREE_CLICK);  
               treeObj.bind(ZTREE_CLICK, function (event, treeId, treeNode) {
                    if ((typeof setting.callback.click) == "function") setting.callback.click(event, treeId, treeNode);
               });
           }
           function zTreePlugin(){
                return {
                     init: function(obj) {
                        this.container = obj;
                        this.setting = settings[obj.attr("id")];
                        return this;
                     },
                     getSelectedNode : function() {
                        return this.setting.curTreeNode;
                     }
                     ......
                };
           }
           //私人方法和公開方法的界限:只要在zTreePlugin傳回值的json格式中寫的方法就是API,沒有寫就是私人的方法
       })(jQuery);

    *  結構總結:
        *  常量部分
        *  外掛程式方法
           初始化資料
           綁定事件
           調用其他的方法
           公開API
        *  公開API的方法
        *  私人的方法

zTree的核心

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.