【问题标题】:Page jumps to the top onclick [duplicate]页面跳转到顶部 onclick [重复]
【发布时间】:2011-01-18 13:09:10
【问题描述】:

我在一个网站中间点击了类似<a href=“#“ onclick=“…的代码

该功能运行良好,但 a href="#" 让我点击链接时页面总是跳转到顶部。有什么办法解决吗?

谢谢

【问题讨论】:

    标签: javascript


    【解决方案1】:

    只需在onclick 末尾添加; return false;,例如:

    <a href="#" onclick="alert('hello'); return false;">
    

    编辑:Hemlock 的答案是一个不错的选择,但另一个是两者的结合:

    <a href="javascript:void(0)" onclick="alert('hello')">
    

    这样做的好处是您明确表示 &lt;a&gt; 不应该对 href 做任何事情,并且 onclick 事件处理程序是一个单独的属性。如果您稍后决定使用 JavaScript 附加 onclick 处理程序而不是内联它(推荐),只需删除 onclick 属性即可。

    【讨论】:

    • href="javascript:" 也适合我。和javascript:void(0)不一样吗?
    • @Nikita 好问题,我还没有看到“javascript:”,但它似乎有效。不过,我目前没有 IE 可供测试。
    • Wouldn't href="javascript:" 就像声明这是 javascript 并且没有运行任何东西,当您添加 void(0) 时,它会运行 void 函数,该函数执行以下操作:“void 运算符评估给定表达式,然后返回未定义”。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
    【解决方案2】:

    替代方法

    <a href="javascript: alert('hello'); void(0);"></a>
    

    将javascript放入href并确保代码以对void的调用结束

    【讨论】:

      【解决方案3】:

      添加

      return false;
      

      在 onclick 语句的末尾

      那是

      <a href="#" onclick="alert('test'); return false;"> Click Here </a>
      

      【讨论】:

        【解决方案4】:

        如果您想要一个执行某些 javascript onclick 的元素,则不应使用 a 标记。 a 标签用于从一个页面导航到另一个页面。您应该使用span,然后您不必提供href 属性。问题在于您为案例选择了错误的 HTML 元素。

        <span onclick=""></span>
        

        【讨论】:

        • 使用可聚焦元素进行点击的原因是键盘导航,这是可访问网站所必需的。用户可以选择要聚焦的元素,然后按 Enter 键“单击”它。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多