我有一个带导航的单页网站,允许用户滚动到页面的不同部分。当用户点击链接时,当用户滚动页面时,网址中的哈希值也会发生变化。我唯一的问题是,如果用户位于顶部并单击链接以转到页脚,则哈希会在跳过不同部分时发生更改,因此在最终到达页脚之前快速突出显示具有所选状态的导航链接。有没有办法在页面滚动到页脚时禁用hashchange函数?
$(window).on('hashchange', function(){
var id = window.location.hash.substring(1);
$('#header ul li').removeClass('selected');
$('[data-rel="'+id+'"]').addClass('selected');
});
答案 0 :(得分:1)
所以你应该使用
$('a').click(function (e) {
e.preventDefault();
}
并运行您自己的代码。如果我理解正确的话,这应该有用吗?
答案 1 :(得分:0)
你的答案是否定的。如果用户想要更改网址的哈希,他将始终能够。 您可以做的是禁用所有链接:
$('a').click(function () { return false; }); // disables
$('a').unbind('click'); // enables them again