2010-10-21 76 views
1

我有一個jsTree複選框,顯示出來很好。我可以打開 並關閉節點,選中並取消選中複選框等。jsTree複選框插件錯誤

問題出現在我試圖獲取所有已檢測到 的節點時。下面列出了我嘗試過的所有方法,以及我嘗試使用每個錯誤時收到的錯誤 。

$.tree.plugin.checkbox.get_checked($.tree.reference("#smuDomains")); 
$.tree is undefined 

$.jstree.plugin.checkbox.get_checked($.jstree.reference("#smuDomains")); 
$.jstree.plugin.checkbox is undefined 

$.tree.plugins.checkbox.get_checked($.tree.reference("#smuDomains")); 
$.tree is undefined 

$.jstree.plugins.checkbox.get_checked($.jstree.reference("#smuDomains")); 
$.jstree.plugins is undefined 

第二個(.jstree.plugin.checkbox $)似乎得到了 最接近的工作,但它似乎並不喜歡「複選框」 參考。應該是check_box還是不同的東西?

這是我用來初始化樹代碼:

$.jstree._themes = "../script/css/jstree/themes/"; 
$("#smuDomains").jstree({ 
    core : {}, 
    themes : { 
     theme : "classic", 
     dots : true, 
     icons : true, 
     url : false 
    }, 
    json_data : { 
     ajax : { 
      url : "[the url]", 
      datatype : "json", 
      data : function(n) { 
       return { id : n.attr ? n.attr("id") : 0 }; 
      }, 
      plugins : [ "themes", "json_data", "ui", "checkbox"] 
     }); 
    }); 
+0

當然所有的括號都關閉? – Harmen 2010-10-21 22:02:15

+0

是的,所有的括號都在那裏,我只是沒有像我應該做的那樣做好複製和粘貼工作。樹完美無瑕。只有當我嘗試調用get_checked時,纔會遇到未定義的錯誤。 – irrational 2010-10-22 19:43:41

回答

0

與get_checked是,它會在被檢查父節點停止的問題之一。

我們結束了這樣的打算:

$(「#idOfDivContainingTree .jstree覈對」)

還有就是這不是jsTree未來版本的工作,因爲它依賴於風險實施

+0

我自己沒有測試過它,但是如果您查看複選框插件的jsTree文檔,您將看到get_checked有一個「get_all」布爾參數,它應該返回所有已檢查的節點。 – 2011-12-09 17:03:57

3

我正在使用此代碼來獲取選中的複選框只是提交表單前:

jQuery('#myForm').submit(function() { 
    jQuery('#mytree .jstree-checked').each(function() { 
     var node = jQuery(this); 
     var id = node.attr('id'); 
     var node_parent = node.parents('li:eq(0)'); 
     var pid = node_parent.attr('id'); 

     jQuery("<input>").attr("type", "hidden").attr("name", "treenode").val(id).appendTo("#mytree"); 
    }); 
}); 
1

$( '#樹')jstree( 'get_checked')

0

您可以:

checked_nodes = $( 「#smuDomains」)jstree( 「get_checked」,空,真);

$。每個(checked_nodes,函數(K,N){

node = $(n); 
alert("name: "+node.attr("name")); //show each one of the nodes names 

});如果你只想要選擇的節點

,你可以有:

selected_nodes = $( 「#smuDomains」)jstree( 「get_selected」,空,真);

希望它有幫助