我在我的网站上设置了一个滑动面板。
当它完成动画后,我会像这样设置哈希值
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;
}
});
});
event.preventDefault()
:) - MarkopreventDefault
! - Gareth