我尝试创建一个jstree列表,其中节点在单击时打开,但双击打开节点的相应链接。 我需要插件" state"工作也一样。
这就是我现在所拥有的:
HTML:
<div id="jstree">
<ul>
<li>
<a href="1">ME2 Engineering</a>
<ul>
<li>
<a href="3">Maths</a>
<ul>
<li>
<a href="13">2nd Order Differential Equations</a>
</li>
</ul>
</li>
<li>
<a href="4">Mechatronics</a>
<ul>
<li>
<a href="14">Control</a>
</li>
<li>
<a href="15">Electronics</a>
</li>
</ul>
</li>
<li>
<a href="12">Dynamics</a>
</li>
</ul>
</li>
</ul>
</div>
JS:
$(function () {
$('#jstree').jstree({
"core" : {
"check_callback" : true,
"dblclick_toggle" :false
},
"types" : {
"default" : {
"icon" : "glyphicon glyphicon-grain"
},
"root" : {
"icon" : "glyphicon glyphicon-tree-deciduous"
}
},
"plugins" : ["dnd", "types", "state"]
}).on('click', '.jstree-anchor', function (e) {
$('#jstree').jstree(true).toggle_node(e.target);
}).bind("dblclick.jstree", function (event) {
var node = $(event.target).closest("li");
var data = node.data("jstree");
// Do my action
var href = node.a_attr.href;
document.location.href = href;
});
});
我已经设法在单独完成时让我的问题的各个事件工作 - 即我可以在单击时打开节点链接,但即使这样我也无法获得&#34;状态&#34 ;工作 - &gt;页面最终永远不会加载,因为它总是指向最初点击的链接。
目前上面的代码让我可以单击打开节点,但双击时什么都不做。州工作也很好。我相信一旦我可以从所选节点获取href数据,就可以轻松找到修复程序,有关如何执行此操作的任何想法吗?