我在我的网站上设置了一个滑动面板。
当它完成动画制作后,我像这样设置散列
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;
}
});
});