2010-09-09 22 views
20

मैं jsTree jQuery प्लगइन का उपयोग कर रहा हूं और उपयोगकर्ता को नोड क्लिक करने पर कोड निष्पादित करना चाहता हूं।मैं jsTree में डबल क्लिक करने के लिए कस्टम व्यवहार कैसे संलग्न कर सकता हूं?

मुझे यह काम करने के लिए प्रतीत नहीं होता है। मुझे ondblclk ईवेंट पर कुछ दस्तावेज मिले लेकिन यह आग नहीं लगा।

browser.jstree(
      { 
       plugins: ["themes", "json_data", "ui", "cookies"], 
       callback: 
       { 
        ondblclk: function (node, tree) { 
         if (!thisReportBrowserthis._isFoldersOnly) { 
          var f = node; 
         } 
        } 
       } 
      } 
     ); 

मैं jstree साथ डबल क्लिक करें घटनाओं कैसे संभाल कर सकते हैं?

+1

ऐसा प्रतीत होता है प्रलेखन मैं ऊपर कोड स्निपेट के लिए पाया बाहर का तारीख थी। – GiddyUpHorsey

उत्तर

21

यह पता चला मैं यह कर सकता:

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

nodeli क्लिक किए गए और data उस में मेरी जानकारी के साथ मेटाडाटा शामिल हैं।

+1

डेटा वापस अपरिभाषित है। –

6

'dblclick.jstree' पिछले संस्करण jsTree 1.0 में मौजूद नहीं है।

नोड के लिए DoubleClick:

$("#yourtree").delegate("a","dblclick", function(e) { 
    var idn = $(this).parent().attr("id").split("_")[1]; 
    alert(idn); //return NodeID  
}); 

इस डालें अगर आप सिर्फ नोड dblclicked चाहते

if (this.className.indexOf('icon') == -1) { /* is the node clicked a leaf? */ } 
+0

मुझे अपने पेड़ पर कोई भी "आईडी" नहीं दिख रहा है (मैं अपने पेड़ को बनाने के लिए HTML_DATA प्लगइन का उपयोग कर रहा हूं और मुझे कोई आईडी बनाने के लिए परेशान नहीं था), लेकिन यह कोड छोड़कर यह काम करता है। ".on()" ऐसा करने के लिए और अधिक आधुनिक jQuery तरीका है, इसलिए $ ("# yourtree") करें। ("dblclick", "a", function (e) {...}); – mhenry1384

4

यह थोड़ा मेरे लिए बाहर डेटा प्राप्त करने के अलग है, लेकिन अन्यथा GiddyUpHorsey के जवाब स्पॉट पर था ।

 jstree.bind("dblclick.jstree", function (e, data) { 
      var node = $(e.target).closest("li"); 
      var id = node[0].id; //id of the selected node 
     }); 
+0

मेरे लिए समान है, कॉलबैक से डेटा को छोड़कर इसे अपरिभाषित है – frage

1

ऊपर जवाब jstree के नवीनतम संस्करण पर काम नहीं करते (जो 3.3.4 है)
यह मैं मन की एक दिन की लागत काम झुकने लेकिन मैं अंत में यह मिल गया: यहाँ फिर से कोड है। यहाँ कोड संपादित करने के लिए DoubleClick काम कर रहा है:

$('#tree1').bind("dblclick.jstree", function (event) { 
 
    var tree = $(this).jstree(); 
 
    var node = tree.get_node(event.target); 
 
    tree.edit(node); 
 
});

और यहाँ एक काम jsfiddle है।

0
संस्करण 3.3.5 के रूप में

, मैं इस एक का उपयोग कर रहा:

 $('#jstree').on("dblclick.jstree", function (e) { 
      var instance = $.jstree.reference(this), 
      node = instance.get_node(e.target); 
      // Code 
     });