如何在不跳转文档的情况下更新 window.location.hash?
2022-08-30 01:42:12
我在我的网站上设置了一个滑动面板。
当它完成动画制作时,我像这样设置哈希
function() {
window.location.hash = id;
}
(这是一个回调,并且是前面分配的)。id
这很有效,允许用户为面板添加书签,并且还可以使非JavaScript版本正常工作。
但是,当我更新哈希时,浏览器会跳转到该位置。我想这是预期的行为。
我的问题是:我该如何防止这种情况?即,如何更改窗口的哈希值,但如果哈希存在,则不让浏览器滚动到该元素?某种事情?event.preventDefault()
我使用的是jQuery 1.4和scrollTo插件。
非常感谢!
更新
下面是更改面板的代码。
$('#something a').click(function(event) {
event.preventDefault();
var link = $(this);
var id = link[0].hash;
$('#slider').scrollTo(id, 800, {
onAfter: function() {
link.parents('li').siblings().removeClass('active');
link.parent().addClass('active');
window.location.hash = id;
}
});
});