页面跳跃 - 无法阻止它

时间:2011-09-28 09:49:35

标签: javascript jquery html

我正在使用HTML页面为Flash应用程序制作模型 - 我正在使用HTML页面在浏览器中进行演示,而且它看起来更像素,我在一些页面上使用jQuery进行丰富的动画制作

我正在使用普通<a>标签来浏览HTML页面。

但是,如果我在页面中间滚动并点击页面底部的按钮 - 当它转到下一个HTML页面时,它会跳回到页面顶部 - 这显然会发生。< / p>

是否有任何javascript或技巧可以阻止所有<a>代码在浏览HTML网页时跳转到页面顶部。或者甚至更好,如果我可以给我的<a>标签一个类,这样它就不会干扰我的jQuery动画 - 因为有些人使用<a>标签。

我的html页面是这样的:

page-1.html
page-2.html
page-3.html
page-4.html
page-5.html

我实际上并没有使用jQuery或JavaScript来浏览我的页面,因此当它从page-1.html跳转到page-2.html时 - 它总是跳到顶部。

我的<a>代码正在使用完整的href <a href="page-2.html" class="stop-jumping" title="Page 2"><img ... /></a>

我正在寻找包含在每个HTML网页的head中的内容,以便在使用<a>代码导航时阻止我的网页移动。

4 个答案:

答案 0 :(得分:3)

我认为您的a标记没有正确的href属性,您只需将"#"放入其中(从语义和可用性的角度来看,这是不好的)。< / p>

您的浏览器认为您点击了一个主播,尝试在DOM中找到它,失败,然后将您带回到页面顶部。

避免这种情况的一种方法是在a代码的点击事件上绑定一个函数并调用preventDefault()

$("a").click(function(event) {
  event.preventDefault();
}

请参阅the jQuery doc.


由于对问题进行大量编辑而进行编辑

您需要使用HTML锚点。在每个html页面上,在您希望用户屏幕对齐的元素上给出一个id。

<h1 id="the_place">The user screen will be aligned to this element</h1>

在指向其他网页的每个链接上,在#the_place属性的末尾添加href

<a href="/page-2.html#the_place">Go to page 2</a>

应该这样做=)。

答案 1 :(得分:0)

$("a").click(function(e) {
  e.preventDefault();
}

答案 2 :(得分:0)

您可以使用

return false 

在处理导航或调用

的函数的末尾
e.preventDefault and e.stopPropagation

停止事件的正常行为(在您的情况下,锚点上的点击事件)。

答案 3 :(得分:0)

如果您有点击事件,则返回false

 $('a').click(function(){
    return false;
}

这将打破标准事件