JSTREE - 双击链接并单击以展开树

时间:2017-10-12 11:42:30

标签: javascript jquery jstree

我尝试创建一个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数据,就可以轻松找到修复程序,有关如何执行此操作的任何想法吗?

0 个答案:

没有答案