2014-10-20 56 views
0

我有一個文件樹,我正在嘗試創建一個編輯器。當選擇一個節點時,將爲該特定節點加載一個面板。如果選擇多個節點,則爲所有選定節點加載更通用的面板。jstree選擇多個節點激發一個事件

問題是,當選擇多個節點時,會爲每個節點啓動「select_node.jstree」。

相關的代碼片段...

$("#tree).on("select_node.jstree", function(event, node) { 
    var selected = node.instance.get_selected(); 
    if(selected.length === 1) { 
     $("#editor").load(url); 
    } else if(selected.length > 1) { 
     $.post(url, { 
      data: selected 
     }, function(res) {  
      $("#editor").html(res); 
     }); 
    } 
}); 

所以......這個,如果我選擇5個項目我做1個GET和4個職位。

我所尋找的是1個GET(選擇的第一個節點)和1個POST(選擇的節點集合)...

難道只是超時?我覺得我失去了一些明顯的東西。我遠離一個好的程序員,所以任何方向將不勝感激。

回答

1

所以,我能夠使用doTimeout庫來管理這個。它的工作原理,不知道它是否是最佳的。

​​

$('#tree').on("select_node.jstree", function(event, node) { 
    $.doTimeout('select', 500, function() { 
     var selected = node.instance.get_selected(); 
     if(selected.length === 1) { 
      $('#editor').load(url); 
     } else if(selected.length > 1) { 
      $.post(url, { 
       data: selected 
      }, function(res) {  
       $('#editor').html(res); 
      }); 
     } 
    }); 
}); 
+0

如果任何人試圖運行該代碼,而不是工作,所以請加' 「''後」 #tree'即'$( 「#樹」)'。 – Jaikrat 2016-03-16 06:15:08