2010-09-09 20 views
20

jsTree jQuery eklentisini kullanıyorum ve kullanıcı bir düğümü çift tıklattığında kod yürütmek istiyorum.jsTree'de çift tıklamaya özel davranışları nasıl ekleyebilirim?

Çalışmasını sağlayamıyorum. ondblclk olayında bazı belgeler buldum ama ateş etmiyor.

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

nasıl jstree ile çift tıklama olayları işleyebilir?

+1

Ben yukarıdaki kod parçacığı bulundu dokümantasyon dışı tarihten oldu belirir. – GiddyUpHorsey

cevap

21

Ben bunu yapabilirsiniz çıkıyor:

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

node tıkladım ve data içinde benim bilgi ile meta verileri içeren edildi li içeriyor.

+1

Veri, tanımsız olarak döndürür. –

6

'dblclick.jstree' son sürümde mevcut değil jsTree 1.0. düğüm için

DoubleClick: Sadece DÜĞÜM dblclicked istediğiniz takdirde

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

bu yerleştirin

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

Ağacımda "id" ler görmüyorum (ağacımı oluşturmak için HTML_DATA eklentisini kullanıyorum ve herhangi bir kimlik oluşturmak istemedim). ".on()" bunu yapmak için daha modern bir jQuery yoludur, bu yüzden ("dblclick", "a", function (e) {...}); – mhenry1384

4

Benim için dışarı veri almak için farklı biraz, ama aksi GiddyUpHorsey cevabı yer-üstünde .

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

benim için de aynı, tanımlanmamış olan veriler tanımlanmamış olduğundan – frage

1

yukarıdaki cevaplar Bu bükme işleri bana aklın bir gün maliyet ama nihayet aldım (3.3.4 olan)
jstree en son sürümünü çalışmaz: Burada yine kodudur. İşte kodunu düzenleme için doubleclick'i çalışıyor: Burada

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

ve çalışan jsfiddle olduğunu. sürümü 3.3.5 olarak

0

, ben bu bir kullanıyorum:

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