我有四个链接,href指向通过.load()
加载的页面的URL,问题出在IE中,当你单击它时页面会跳转,我已经在代码中附加了(window).scrollTo(0)
在IE以外的所有浏览器中修复它。
我在代码上也有return false
,因此它会停止默认行为。
我已经看到:Page jumps to the top onclick并尝试实施答案,但它似乎对我不起作用。
有人知道解决方案吗?
href的:
<a href="welcome.html" name="welcome">Welcome</a>
<a href="about.html" name="about">About</a>
<a href="forum.html" name="forum">Forum</a>
<a href="contact.html" name="contact">Contact</a>
jQuery代码:
$('#jqNav li a').click(function(e){
if($(this).parent().is(".nav1")){ $('.landing .main .nav ul').css({ "background-position" : "0 -50px" });}
else if($(this).parent().is(".nav2")) { $('.landing .main .nav ul').css({ "background-position" : "0 -100px" });}
else if($(this).parent().is(".nav3")) { $('.landing .main .nav ul').css({ "background-position" : "0 -150px" });}
else if($(this).parent().is(".nav4")) { $('.landing .main .nav ul').css({ "background-position" : "0 -200px" });};
stopAnim = true;
$page = $(this).attr('href');
var $hashTag = $(this).attr('name');
window.location.hash = $hashTag;
loadData();
$(window).scrollTop(0);
e.preventDefault();
});
答案 0 :(得分:0)
回答我自己的问题;
window.location.hash
生成了<a name="hash name">
生成的内容,因此浏览器将页面推送到页面上的元素。
我所做的是从锚标签中删除了name元素,并通过jQuery推送了名称。由于我只有4个锚标签,这对我的场景来说是最简单的解决方案,如果你引用大量的哈希标签并希望阻止它跳跃,我发现Stack Overflow上的另一篇文章有一些很棒的答案。