节点选择加载并使href一起工作

时间:2015-09-23 19:42:58

标签: jquery jstree

我可以让工作节点选择加载 make href 一起工作吗?现在我得到一个无限循环,页面总是刷新。我的代码:

$(document).ready(function () {
    var arrayCollection = <%=GetJson()%>;
    var selectedid = <%=GetSelected()%>;

    $('#jstree').jstree({
        'core': {
            'data': arrayCollection,
        }
    })
    .on('loaded.jstree', function () {
        $('#jstree').jstree('select_node', selectedid);
    })
    .on("select_node.jstree", function (e, data) {
        document.location = data.instance.get_node(data.node, true).children('a').attr('href');
    });
});

1 个答案:

答案 0 :(得分:1)

如果您要重定向的网页上有此javascript。它将无限循环。在加载时,它将重新加载树,选择节点并重定向到所选节点。

试试这个:

$(document).ready(function () {
    var arrayCollection = <%=GetJson()%>;
    var selectedid = <%=GetSelected()%>;
    $('#jstree')
                .jstree({
                    'core': {
                        'data': arrayCollection,
                    }
                }
                )
                .on('loaded.jstree', function () {
                    $('#jstree').jstree('select_node', selectedid);
                })
                .on("select_node.jstree", function (e, data) {
                    var newLoc = data.instance.get_node(data.node, true).children('a').attr('href');
                    //only redirect if the current location doesn't match the redirect location
                    if(window.location.href != newLoc){
                        document.location = newLoc;
                    }
                });
  });