如何在loaded.jstree事件中获取所选节点?
我应该在事件处理程序中做什么:
$('#Tree').bind('loaded.jstree', function(event, data){//TODO: How to get the selected node here?}).jstree();
顺便说一句,我发现事件数据arg对象包含一个名为get_selected()的函数,但无法从中获取任何内容。
我的目的是将客户端重定向到当前选定的节点(通过'url'属性)。
提前致谢
答案 0 :(得分:2)
根据此处的演示文档似乎:
你可以这样做:
.one("reselect.jstree", function (event, data) { });
或
.bind("select_node.jstree", function (event, data) {
// `data.rslt.obj` is the jquery extended node that was clicked
alert(data.rslt.obj.attr("id"));
})
仔细阅读文档:
使用了一个,这是因为如果调用
refresh
那些事件就是 触发
// 1) if using the UI plugin bind to select_node
.bind("select_node.jstree", function (event, data) {
// `data.rslt.obj` is the jquery extended node that was clicked
alert(data.rslt.obj.attr("id"));
})
// 2) if not using the UI plugin - the Anchor tags work as expected
// so if the anchor has a HREF attirbute - the page will be changed
// you can actually prevent the default, etc (normal jquery usage)
.delegate("a", "click", function (event, data) { event.preventDefault(); })
对于上一个事件delegate
,如果您没有使用UI插件,则可以正确地进行重定向,并写下:event.preventDefault();
答案 1 :(得分:0)
您可以通过以下方式选择当前节点:
$('#' + data.node.id)
代码变为:
$('#Tree').bind('loaded.jstree', function(event, data){
console.log($('#' + data.node.id)); //This is current node, see on console
}).jstree();