2011-05-09 79 views
6

我該如何爲jstree對象上的雙擊事件編寫監聽器? (例如,我想雙擊一個樹節點並將其錨點的href值粘貼到input字段中。)如何傾聽雙擊jstree?

+0

的可能的複製[如何我可以將自定義行爲附加到jsTree中雙擊?](http://stackoverflow.com/questions/3674625/how-can-i-attach-custom-behaviour-to-a-double-click-in-jstree) – 2015-10-23 12:15:10

回答

8

我在一年前使用過這種方法,我不喜歡「知道,如果有在當前jstree版本的任何變化:

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

節點:包含正在單擊李。

data:包含元數據。

+2

'//做一些動作'之後,如果我添加'alert(data)',那麼我得到'null'。 – 2011-05-09 06:17:53

+0

這樣的答案是接近你的,似乎工作:http://stackoverflow.com/questions/3674625/how-can-i-attach-custom-behaviour-to-a-double-click-in-jstree/5652753 #5652753 – 2011-05-09 06:22:25

+4

node.data(「jstree」)返回未定義在最新版本的jStree(3.1.x) 因此,使用此:'var tree = $(this).jstree(); \t \t \t var node = tree.get_node(evt.target);所以你有兩個節點對象和樹對象來調用任何樹的API,所以你有兩個節點對象和樹對象調用任何樹API – TechMaze 2015-04-22 19:44:29

4

如果您點擊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... 
}); 

不知道爲什麼「相對」和「ID」屬性是在生成的節點不同的地方,但它的工作原理;)