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的方法
* 私有的方法
相关文章
- 10-01ArrayList、linklist、list的区别
- 10-01[物理学与PDEs]第1章习题6 无限长载流直线的磁场
- 10-01js计算两个日期的月份差
- 10-01算法题:int 数组中 只有一个是id 只出现一次 其他都出现2次 怎么找出只出现一次的id
- 10-01典型的团队VS优秀团队
- 10-01RFID电子标签的分类及区别
- 10-01js获取7天之前的日期或者7天之后的日期
- 10-01统计一行文本的单词个数 (15 分) 本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中输出单词个数。 输入样例: Let's go to room 209. 输出样例: 5
- 10-01物联网的三层架构
- 10-01上课备课的阶段结束。重新开始科研的感受