jstree最初选择菜单会导致无限循环;

时间:2012-08-28 09:33:43

标签: jstree

我正在使用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时,它选择一个节点(#MENITITEM_012),然后更改window.location.href,然后加载jstree并再次选择一个节点。

我怎样才能摆脱这种情况。

2 个答案:

答案 0 :(得分: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");
});

答案 1 :(得分:0)

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

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

.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");
})