你能告诉我为什么删除功能无法工作。我从菜单选项中删除代码。 http://jsfiddle.net/fuu94/136/
$('#remove').click(function(){
alert('dd') ;
$("#b-a-1").remove();
$('#tree').jstree(true).delete_node("#b-a-1");
})
答案 0 :(得分:3)
您需要使用双反斜杠 -
来转义特殊字符\\
。来自 docs :
使用任何元字符(例如 !"#$%&'()* +,。/:;< =>?@ [] ^`{|}〜)作为名称的字面部分,它必须 用两个反斜杠转义:\\
$("#b\\-a\\-1").remove();
的 Updated Fiddle 强>
在使用#
方法删除节点时,您不需要指定delete_node
,因为它始终将您的obj
视为唯一元素:< / p>
$("#tree").jstree(true).delete_node('b-a-1') ;
<强> Updated Fiddle 强>
答案 1 :(得分:0)
为什么不尝试使用empty()
?
$('#remove').click(function(){
alert('dd') ;
$("#b-a-1").empty();
$('#tree').jstree(true).delete_node("#b-a-1");
})
即使您再次关闭并打开节点,这也完全符合您的要求,将其从dom中删除。
注意: 目前我只能看到你需要在点击删除之前放下菜单,否则它不会删除元件..
答案 2 :(得分:0)
只需获取变量中的元素并删除即可。
var a = $("#b-a-1");
$(a).remove();
答案 3 :(得分:0)
你有一个小错误! Api不是很清楚,但正确的语法是:
$("#tree").jstree(true).delete_node('b-a-1')
而不是:
$("#tree").jstree(true).delete_node('#b-a-1')
希望它有所帮助!
答案 4 :(得分:0)
下面的代码删除了所选元素。 jsfiddle
var sel = $("#tree").jstree("get_selected");
$("#tree").jstree("remove", sel);
$('#tree').jstree(true).delete_node(sel);