在js文件中加入了网上找到的增删方法后出现的问题:

\"\"

Tree.prototype.addNode = function(identifiers, options) {
		this.forEachIdentifier(identifiers,options,
			$.proxy(function(node, options) {
					this.setAddNode(node, options);
				},
				this));
//*********************************************************
		this.setInitialStates({ nodes: this.tree }, 0);
//**********************************************************

		this.render();
	}

星号包围的地方导致重新加载节点,节点每增加或减少都会刷新导致id不断扩大

因此本来点击获取到的节点id也不准确了

Tree.prototype.setInitialStates = function (node, level) {

		if (!node.nodes) return;
		level += 1;

		var parent = node;
		var _this = this;
		$.each(node.nodes, function checkStates(index, node) {
//****************************************************************
			// nodeId : unique, incremental identifier
			if(node.nodeId==\"\"||node.nodeId==undefined){
				node.nodeId = _this.nodes.length;
				// parentId : transversing up the tree
				node.parentId = parent.nodeId;
			}
//***************************************************************
			// if not provided set selectable default value
			if (!node.hasOwnProperty(\'selectable\')) {
				node.selectable = true;
			}

			// where provided we should preserve states
			node.state = node.state || {};

			// set checked state; unless set always false
			if (!node.state.hasOwnProperty(\'checked\')) {
				node.state.checked = false;
			}

			// set enabled state; unless set always false
			if (!node.state.hasOwnProperty(\'disabled\')) {
				node.state.disabled = false;
			}

没办法修改了这里,感觉不太好,有什么好办法吗?请留言,谢谢。

收藏 打印