这是我的重命名功能,我尝试过的所有选项都没有,我知道,set_id是要使用的功能,但是如何使用?
$('#jstree').on('rename_node.jstree', function (node,obj) {
var node_id = "calculated"// calculate node_id
// tried the following 3 options ..
....
$('#jstree').jstree(true).set_id(obj,node_id); //not working
obj.instance.set_id(this,node_id)// not working either
obj.instance.set_id(obj,node_id)//nope..
那么如何在jstree中设置node_id?
答案 0 :(得分:10)
我查看了API http://www.jstree.com/api/#/?q=rename&f=rename_node.jstree,我认为你必须使用obj.node。
$('#jstree').jstree(true).set_id(obj.node,node_id);
obj.text
应包含节点的新名称,obj.old
应包含节点的旧名称。
答案 1 :(得分:1)
您调用node
的第一个参数实际上是event
对象
创建节点然后更新其自动生成的ID
的示例$('#jstree').on('create_node.jstree', function (e, obj) {
#...
$(this).jstree(true).set_id(obj.node, 42);
}
答案 2 :(得分:0)
在你的on。()函数中尝试以下内容:
$(this).attr("id", node_id);
答案 3 :(得分:0)
只需在您用于创建节点的元素上设置属性ID。
<div id="jstree">
<ul>
@foreach($feelings as $feeling)
<li id="{{{$feeling->id}}}">{{{$feeling->name}}}
<ul>
@foreach($feeling->children as $feeling_children)
<li id="{{{$feeling_children->id}}}">{{{$feeling_children->name}}}
<ul>
@foreach($feeling_children->children as $feeling_children2)
<li id="{{{$feeling_children2->id}}}">{{{$feeling_children2->name}}}
<ul>
@foreach($feeling_children2->children as $feeling_children3)
<li id="{{{$feeling_children3->id}}}">{{{$feeling_children3->name}}}
<ul>
@foreach($feeling_children3->children as $feeling_children4)
<li id="{{{$feeling_children4->id}}}"> {{{$feeling_children4->name}}}</li>
@endforeach
</ul>
</li>
@endforeach
</ul>
</li>
@endforeach
</ul>
</li>
@endforeach
</ul>
</li>
@endforeach
</ul>