2016-02-19 80 views
5

私が持っているこのJsTreeこのコードのJsTreeチェックボックス - チェックイベント

enter image description here

var Tree = $("#MyTree"); 

     Tree.jstree({ 
      "core": { 
       "themes": { 
        "responsive": false, 
        "multiple" : false, 
       }, 
       "data": dataTree 
      }, 
      "types": { 
       "default": { 
        "icon": "icon-lg" 
       }, 
       "file": { 
        "icon": "icon-lg" 
       } 
      }, 
      "ui": { 
       "select_limit": 1, 
      }, 
      "plugins": ["wholerow", "types", "checkbox", "ui", "crrm", "sort"], 
      "checkbox": { 
       "three_state": false, 
       "real_checkboxes": false 
      } 
     }); 
私が選択してチェックアクションを分離する必要が

、ユーザーがすべてのノードをチェックしなければならない彼時間のために1つの行だけを選択したい。 今のところ、行のどこでもクリックするとその行が選択され、そのノードがチェックされます。ユーザーがクリックするとチェックボックスをオンにする必要があります。

私はそんなにイベントを試すだけその作業は次のとおりです。選択のアクションの両方をキャッチし、チェック

Tree.on("changed.jstree", function (e, data) { }); 

提案がありますか?

答えて

13

この回答はjstreeのリリース3についてのものです.2016年に使用する必要があります。不幸なことに、サンプルコードはjstree rel 1を使用しているようですが、私はそれについてお手伝いできません。リリースでは

すべての3

まず、選択されたと確認された状態(checkbox.tie_selection:false)をほどく - 次にthe docs

を参照してください、check_node.jstreeイベントを使用

ワーキング例

var data1 = [{ 
 
     "id": "W", 
 
     "text": "World", 
 
     "state": { "opened": true }, 
 
     "children": [{"text": "Asia"}, 
 
        {"text": "Africa"}, 
 
        {"text": "Europe", 
 
        "state": { "opened": false }, 
 
        "children": [ "France","Germany","UK" ] 
 
     }] 
 
    }]; 
 

 
$('#Tree').jstree({ 
 
    core: { 
 
     data: data1, 
 
     check_callback: false 
 
    }, 
 
    checkbox: {  
 
     three_state : false, // to avoid that fact that checking a node also check others 
 
     whole_node : false, // to avoid checking the box just clicking the node 
 
     tie_selection : false // for checking without selecting and selecting without checking 
 
    }, 
 
    plugins: ['checkbox'] 
 
}) 
 
.on("check_node.jstree uncheck_node.jstree", function(e, data) { 
 
    alert(data.node.id + ' ' + data.node.text + 
 
     (data.node.state.checked ? ' CHECKED': ' NOT CHECKED')) 
 
})
<link href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css" type="text/css" rel="stylesheet" /> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script> 
 
    <div id="Tree"></div>

+0

@LorenzoGrossi私はそれはdoesnの私の溶液中で ...私はスニペットは、私がしなければならない、まさにですが、それは私の解決策では動作しません、jstree 3.2.1をダウンロードした作業スニペット – edc65

+0

を追加しましたボックスをクリックするとチェックを追加しますが、行を選択すると追加します –

+0

@LorenzoGrossi作成パラメータを確認します。特に 'checkbox'セクション。 – edc65

関連する問題