2010-10-21 71 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”,空,真);

希望它有帮助