1

我正在使用 jstree_pre1.0_fix_1。我想要预选菜单。

javascript正在关注,

$("#Menu").jstree({ 
    "plugins" : [ "themes", "html_data", "ui"],
    "ui" :{ "initially_select" : ["#MENUITEM_012"] },
    "themes" : {
        "theme" : "custom",
        "dots" : false,
        "icons" : false,
    },
}).
bind("select_node.jstree", function(e,data) {
    window.location.href = data.rslt.obj.children("a").attr("href");
});

加载jstree时,它会选择一个节点(#MENUITEM_012),然后更改window.location.href,然后加载jstree并再次选择一个节点。

我该如何摆脱这种情况。

4

2 回答 2

1

刚刚找到解决方案。问题是由于库试图选择节点(即在加载导航页面后使其显示为选中)引起的。当访问节点以将页面导航到另一个页面时,已设置处理程序。

解决方案是确保通过鼠标单击选择节点。

.bind("select_node.jstree", function(e,data) {
    var evt =  window.event || event;
    var button = evt.which || evt.button;
    if( button != 1 || ( typeof button == "undefined")) return true;

    window.location.href = data.rslt.obj.children("a").attr("href");
}) 
于 2014-07-11T14:12:36.760 回答
0

回答我自己;

消除

.bind("select_node.jstree", function(e,data) {
    window.location.href = data.rslt.obj.children("a").attr("href");
}) 

添加

$(".jstree li a").live("click", function(e) {
    window.location.href = $(this).attr("href");
});
于 2012-10-09T23:35:53.480 回答