【发布时间】:2011-04-21 16:01:39
【问题描述】:
我在我的网站上设置了一个滑动面板。
当它完成动画时,我像这样设置哈希
function() {
window.location.hash = id;
}
(这是一个回调,之前分配了id)。
这很好用,允许用户为面板添加书签,并且非 JavaScript 版本也可以工作。
但是,当我更新哈希时,浏览器会跳转到该位置。我猜这是预期的行为。
我的问题是:如何防止这种情况发生? IE。如何更改窗口的哈希值,但如果哈希值存在,不让浏览器滚动到元素?某种event.preventDefault() 之类的东西?
我正在使用 jQuery 1.4 和 scrollTo plugin。
非常感谢!
更新
这是更改面板的代码。
$('#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():) -
@Marko 我不知道该放在哪里!
-
你能把剩下的代码贴出来吗?
-
@Marko Ivanovski 我认为这无关紧要,但我会看看我能做些什么。
-
@Gareth 我不认为有它的位置,因为它会在我更新哈希时立即发生。
标签: javascript jquery hash scrollto