2016-03-04 44 views
0

我正在尝试编写我自己的$.jstree.defaults.unique.duplicate函数并将其替换。替换“独特”插件的重复功能

我想在下面的jsfiddle这样做(行:68):

$.jstree.defaults.unique.duplicate = function(name, counter){ 
    return name + "_test"; 
}; 

步骤测试:

  1. 选择Devices
  2. 创建节点称为节点1
  3. 创建另一个节点在名为Node1的设备下 它将使用jstree默认方法将其替换为默认节点名称vs我的功能在提供

http://jsfiddle.net/2mbq86at/

难道我做错了什么?提前致谢。

回答

0

在您的代码中指定要在创建新节点过程中使用的文本。

取出预先定义的文本,事情将开始按您的需要的功能$ .jstree.defaults.unique.duplicate工作!

self.createFileNode = function (data) { 
    //Below code only allows files to be created within folders. 
    //Structure it as per createFolder method to create files at root 
    var data = { 
      //'id': 'tempId', 
      //'text': 'iOS 8' 
    } 
.... 

在这种情况下,当然新节点的文本将是默认的“新节点”。

最好是设置一个唯一的节点名称上创建一个新的节点,就像"text" : "OS_" + (new Date).getTime()权放在首位。

仍重命名节点和重复的情况:采用独特的插件,在重命名和选择重复文本节点的文本将回落到原来的一个。如果这不是我们所期望的,事情变得更加复杂,因为rename_node.jstree事件在这种情况下不会被触发。