2011-05-09 8 views
6

jstree 객체에서 더블 클릭 이벤트에 대한 리스너를 작성하는 방법은 무엇입니까? (예를 들어, 내가 어딘가 형태의 input 필드에 앵커의 href 값을 트리 노드를 두 번 클릭하고 붙여 넣기하고 싶습니다.) 내가 다시 년 전에 이런 식으로 뭔가를 사용했다jstree를 두 번 클릭하는 방법은 무엇입니까?

+0

가능한 중복을 [어떻게 jsTree에서 두 번 클릭하여 사용자 지정 동작을 첨부 할 수 있습니까?] (http://stackoverflow.com/questions/3674625/how-can-i-attach-custom-behaviour-to-a-double-click-in-jstree) –

답변

8

, 난 돈 현재 jstree 버전에 변화가 있다면 't 알고 :

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

노드 : 클릭되고있는 리튬을 포함하고 있습니다.

데이터 : 메타 데이터가 들어 있습니다.

+2

'// Do some action' 후'alert (data);를 추가하면'null'이됩니다. –

+0

이 SO 답변은 나와 가까운 것으로 작동하며 작동하는 것 같습니다. http://stackoverflow.com/questions/3674625/how-can-i-attach-custom-behaviour-to-a-double-click-in-jstree/5652753 # 5652753 –

+4

node.data ("jstree")는 최신 버전의 jStree (3.1.x)에서 undefined를 반환합니다. 이렇게 사용하십시오 :'var tree = $ (this)) .jstree(); \t \t \t var node = tree.get_node (evt.target); \t \t \t var nodePath = tree.get_path (node) .join ("/"); ' 노드 개체와 트리 개체를 모두 사용하여 트리 API를 호출 할 수 있습니다. – TechMaze

4

Nirmal의 솔루션은 jstree div의 아무 곳이나 클릭하면 작동합니다. 예를 들어, 오른쪽의 공백 문자가 아닌 노드 자체에서만 더블 클릭을 사용하려고했습니다. 솔루션을 변경 조금이 활성화 :

$('#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'속성은 결과 노드에서 다른 장소에 있지만, 그것은 작동하는 이유)의

관련 문제