如何听取双击jstree?

Ale*_*lds 6 javascript jquery events double-click jstree

如何在jstree对象上为双击事件编写侦听器?(例如,我想双击树节点并将其锚点的href值粘贴到某个input表单中的字段中.)

Nir*_*mal 8

一年前我使用过类似的东西,我不知道当前的jstree版本是否有任何变化:

jstree.bind("dblclick.jstree", function (event) {
   var node = $(event.target).closest("li");
   var data = node.data("jstree");
   // Do some action
});
Run Code Online (Sandbox Code Playgroud)

node:包含被单击的li.

data:包含元数据.

  • node.data("jstree")在最新版本的jStree(3.1.x)中返回undefined所以请使用:`var tree = $(this).jstree(); var node = tree.get_node(evt.target); var nodePath = tree.get_path(node).join("/");`所以你有节点对象和树对象来调用任何树API (4认同)
  • 在`//做一些动作'之后,如果我添加`alert(data);`然后我得到`null`. (2认同)

小智 5

如果你点击jstree div上的任何地方,Nirmal的解决方案都有效.我想只在节点本身上启用双击,而不是在例如右侧的空白处.更改解决方案有点启用此:

$('#jstree-div a').live('dblclick',function (e) {
    var node = $(e.target).closest("li");
    var type = node.attr('rel');
    var item = node[0].id;

    // do stuff...
});
Run Code Online (Sandbox Code Playgroud)

不确定为什么'rel'和'id'属性在结果节点中的不同位置,但它有效;)