【问题标题】:How to disable jQuery function on external page如何在外部页面上禁用 jQuery 功能
【发布时间】:2013-02-24 14:35:11
【问题描述】:

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

<a href="page.html#div>

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

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

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

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

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

我尝试在我的链接中包含此内容:

onclick="return false;

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

【问题讨论】:

  • 您是否还拥有(即可以更改代码)外部页面?

标签: jquery html hyperlink anchor autoscroll


【解决方案1】:

锚点与&lt;a&gt; 标签中的名称属性一起使用,而不是与&lt;div&gt; 一起使用。

链接:

<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 就不会做任何事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多