我正在尝试使用JSON生成的jsTree来导航目录结构。目前我正在绑定一个select_node事件以将所选节点的路径作为字符串,然后将location.hash
设置为该路径。这部分实际上工作正常。我的问题是,在我的select_node事件完成之后,其他东西会立即从url中删除哈希值,这显然会破坏浏览器历史记录并将用户发送回“索引”页面。这是我目前的代码。我该如何防止这种情况发生?
$('#projects').jstree({
core: {
animation: 0
},
plugins: ["themes", "json_data", "ui"],
themes: {
theme: "gm",
dots: false
},
json_data: {
ajax: {
url: '/json/projects',
},
progressive_render: true
}
}).bind('select_node.jstree', function(e, data){
var path = '#/' + $(this).jstree('get_path', data.rslt.obj, false).join('/')
window.location.hash = path
})
答案 0 :(得分:0)
我认为问题代码是这样的:
var path = '/' + $(this).jstree('get_path', data.rslt.obj, false).join('/')
您可以使用
var path = '/' + $(this).jstree('get_path', data.rslt.obj, false).join('/') + location.hash
确保散列仍然存在。