2012-07-16 13 views

cevap

2

. Benim durumumda, ağacın veri kaynağı olarak xml kullanıyorum. Open_node olayını jstree'ye aşağıdaki şekilde bağlıyorum. Xml kullanmama rağmen, iç yapının html verilerininki olduğuna dikkat edin.

// jsTree Configuration hash 
var jsTreeConfig = {}; 

$("#demo1").jstree(jsTreeConfig) 
      .bind('open_node.jstree', function(e, data) { 
       var parentObj = data.rslt.obj; // parent object 
       var jstreeInstance = data.inst; // jstree instance 
       $(data.rslt.obj).find("li").each(function(idx, listItem) { 
        var child = $(listItem); // child object 
        // do Stuff with child which can be any level of hierarchy depth 
        // ... 
       }); 
      }); 
+0

Zayıf girinti için özür dilerim. jstree ({...}) jstree'yi başlatmak için tüm seçeneklere sahiptir. Bunun çalışması için önceden yüklenmiş jQuery'ye ihtiyacınız var. – Sid

4

Tüm bu seçici kullanarak tam ağacını alabilirsiniz: Bunu yapmak için bir yol bulmuş $("#demo1").find("li > a")

+0

Teşekkürler @fliespl ama sadece belirli bir ebeveynin çocuk düğümlerine ihtiyacım var. Bunu yapmanın bir yolunu buldum. Test ettikten hemen sonra bir cevap yazacağım. – Sid

4

Önceki çözümü denedim ve en son jsTree (v3.2.1) sürümü ile çalışmıyor. Aşağıda, ebeveynin çocuk düğümlerini ve alt düğümlerini almak için güncellenmiş bir çözüm bulunmaktadır.

$("#myTree").bind('selected_node.jstree', function (node, data) { 
    var selectedNodes = $("#myTree").jstree(true).get_json(data.node.id, { flat: true }); 
    for (var i = 0; i < selectedNodes.length; i++) { 
     // Apply logic here 
     // ... 
     // ... 
     // ... 
    } 
}); 
İlgili konular