如何禁用外部页面上的jQuery函数

时间:2013-02-24 14:35:11

标签: jquery html hyperlink anchor autoscroll

我正在尝试在外部页面上加载锚标记。我正在使用这种方法:

<a href="page.html#div>

链接到另一个页面的特定div。

<div name="div">
stuff
</>

到目前为止,问题是该链接仅将我链接到外部页面而不是该页面上的特定div。我刚刚发现问题在于我包含了jquery。当我按下链接时,会出现正确的div一瞬间,然后页面会快速更改回页面顶部。

有没有办法通过这样的方法禁用jQuery在外部页面上的自动滚动:

 $(document).ready(function(e) {
 e.preventDefault();  
 });

我尝试将其包含在我的链接中:

onclick="return false;

但这意味着它们不起作用。

1 个答案:

答案 0 :(得分:2)

锚点使用<a>标记中的name属性,而不是<div>

链接:

<a href="page.html#here>
to link to another page's specific div.
</a>

目标目的地:

<a name="here">
stuff
</a>

如果你试图使用jQuery来破坏这种行为(例如通过目标页面中的javascript来阻止它),那么就会出现问题,因为浏览器首先加载页面然后在页面中运行javascript,所以除非默认您的目标页面的条件是隐藏的,内容可能会在jQuery修改它之前显示一种方式。除非您最初可以使用静态CSS样式规则(不使用javascript)隐藏目标页面,否则您无法对此进行任何操作,因为该页面可能会在您的javascript运行之前显示。

如果您可以在第一页中放置javascript,则可以从链接中删除#here,这样当点击它们时,它们就没有额外的目标。

如果您可以修改第二页的HTML,则可以删除name目标,以便#here无法执行任何操作。