Jquery ui 使jQueryUI选项卡可添加书签

Jquery ui 使jQueryUI选项卡可添加书签,jquery-ui,Jquery Ui,我觉得有点奇怪,jQueryUI选项卡没有一个内置的方便方法使选项卡成为书签(更改URL哈希)。下面的代码片段对我来说很有用 $("#tabs").tabs({ "activate": function(event, ui) { window.location.hash = ui.newTab.context.hash; } }); 问题是,当散列附加到URL时,页面会跳转到页面上相应的锚点。我怎样才能防止这种情况发生?我只想更改URL地址,显示当前选定的选项卡

我觉得有点奇怪,jQueryUI选项卡没有一个内置的方便方法使选项卡成为书签(更改URL哈希)。下面的代码片段对我来说很有用

$("#tabs").tabs({
    "activate": function(event, ui) {
        window.location.hash = ui.newTab.context.hash;
    }
});
问题是,当散列附加到URL时,页面会跳转到页面上相应的锚点。我怎样才能防止这种情况发生?我只想更改URL地址,显示当前选定的选项卡,但不垂直移动页面


更新:我要说的是,我并不执着于上面的代码。我只想用所选选项卡的id更改URL地址栏,以便用户可以将选项卡添加书签或链接。

用HTML5历史记录替换
window.location.hash
(刷新页面)(在不刷新页面的情况下操作URL地址栏和浏览器历史记录堆栈)他为我做了这件事。下面的代码对我有用

$("#tabs").tabs({
    "activate": function(event, ui) {
        var url = window.location;
        window.history.pushState({
            "html": "",
            "pageTitle": title,
        }, "", url.href.replace(url.hash, "") + ui.newTab.context.hash);
    }
});

您可以将当前垂直滚动距离存储到页面顶部,然后重新应用,如下所示:

$("#tabs").tabs({
    "activate": function(event, ui) {'use strict';
        var scrollTop;   

        scrollTop = $(document).scrollTop();
        window.location.hash = ui.newTab.context.hash;
        $(document).scrollTop(scrollTop);
    }
});