2016-07-08 5 views
0

jstreeを使用していて、ノードが選択されたときにいくつかのajax呼び出しを行いたいと思います。同じノードが再びクリックされた場合、私はajax呼び出しをトリガーしたくありません。 jstree example for listening eventsは、以下のようにchanged.jstree を使用しています。キャプチャツリーノード変更イベント

$('#jstree') 
    // listen for event 
    .on('changed.jstree', function (e, data) { 
//my custom code here that should trigger if a new node is selected 
}); 

私は二度同じノードをクリックした場合しかし、これがトリガーされます。以前に選択されたノードと同じであるかどうかを教えてくれるデータオブジェクトまたはイベントオブジェクトでは何も見つかりませんでした。 jstreeにこれを理解するのに役立つ何かがありますか?これを理解する最良の方法は何ですか?

答えて

0

私たちはjstreeを作成here

示す選択および選択解除nodes.It初のプラグインを決定するために変更されたプラグインを使用することができることを発見し、は、プラグインの配列でを変更し、次のとおりです

$('#jstree').jstree(
      { 
       "core": { 
        "multiple": false, 
        // so that create works 
        "check_callback": true, 
        "data": menu 
       }, 
       "plugins": ["changed"] 
      } 
    ); 

場合選択された配列と選択されていない配列の両方が空であるため、選択が変更されていないことを意味します。

$('#jstree').on('changed.jstree', function (e, data) { 
    if (!(data.changed.selected.length === 0 && data.changed.deselected.length === 0)) 
    { 
     //This is when something is really changed. 
});