2016-03-23 4 views
0

私はJSTree divを作成して作成するためのAJAX呼び出しを行います。 チェックボックスプラグインを有効にして、をチェックしてください。私のAJAX結果コールバック内のすべてのチェックボックスをチェックしてください。それは動作しません。Jstree - AJAX呼び出しのチェックボックスをチェックすることはできません。従来の呼び出しで動作します。問題?

私は同じ機能(すべてのボックスをチェックする)をボタンにバインドしました。ここでは機能します。

AJAX呼び出し

で、これはJSTreeの問題ですか、私は何かがあるように、私もjQueryを使ってカスタムイベントを介してすべてのチェックボックスをチェックしてみましたが、それは何もしません。行方不明?


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


    仕様

    私はこの問題 JsFiddleで再現しましたあなたは成功コールバック内checkAllを呼び出すときjstreeがまだノードを構築していないためだ3210

    コード

    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(); 
    } 
    

答えて

1

。ちょうどあなたのcheckAllコールをready.jstreeイベントに書き換えてください。デモを確認する - Fiddle

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

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

}); 
+0

私は見る...ありがとう、それは本当にうまくいく! –

関連する問題