2016-03-23 20 views
0

JSTree div'ımı oluşturmak ve doldurmak için bir AJAX çağrısı yapıyorum. onay kutusunu eklentisini etkinleştirdim ve adresindeki numaralı onay mesajını AJAX sonucunun geri bildirimi içindeki tüm onay kutularını işaretledim. Çalışmıyor.Jstree - AJAX çağrısında onay kutularını kontrol edemiyorum, klasik aramada çalışır. Sorun?

Aynı işlevi (tüm kutuları işaretleyecek) bir düğmeye bağladım ve burada çalışır.

Ben de jQuery ile özel etkinlik aracılığıyla tüm onay kutularını kontrol etmeye çalıştı ama AJAX çağrısı

gibi bir şey yapmaz bu JSTree ile ilgili bir sorun yoksa ben bir şey eksik?


jsTree 3.2.1
  • jQuery 1.9.1
  • : (?): https://jsfiddle.net/Lyyn/c74wpa6z/


    Özellikleri

    Bu sorunu JsFiddle çoğaltılamazEğer başarı callback'inde içine checkAll çağırdığınızda jstree henüz düğümleri inşa etmediğinden var

    kod

    HTML

    <h1> 
    JSTree Demo 
    </h1> 
    <button id="btn"> 
    Check All 
    </button> 
    <div id="jstree"> 
    
    </div> 
    

    JS

    // Populate the tree with some generic data 
    $.ajax({ 
        // ... initial ajax code with some generic data 
        success: function(response) { 
          var $tree = $("#jstree"); 
          $tree.jstree(response); 
    
         // Try to check all boxes, it doesn't work 
         checkAll($tree); 
        } 
    }); 
    
    // Try to check all boxes, here it works. Why. 
    $("#btn").click(function(){ 
         checkAll($("#jstree")); 
    }) 
    
    // This will check all boxes inside the tree 
    function checkAll(tree) { 
         tree.jstree(true).check_all(); 
    } 
    

cevap

1

. Aşağıdaki gibi checkAll aramanızı ready.jstree etkinliğinize kaydırın. Demoyu kontrol et - Fiddle.

... 
success: function(response) { 
    var $tree = $("#jstree"); 
    $tree.jstree(response).on('ready.jstree', function() { 

     // Try to check all boxes 
     checkAll($tree); 

}); 
+0

Anlıyorum ... Çok teşekkürler, gerçekten iyi çalışıyor! –