【问题标题】:Force click on empty link to not move the page focus强制点击空链接不移动页面焦点
【发布时间】:2015-05-16 22:35:46
【问题描述】:

我有一个空链接:

<a href="#" id="stop-point-btn">+ add stop-point</a>

绑定到一个 JS 函数:

$("#stop-point-btn").bind("click", addStopPoint);

它只是在 div 中添加一些内容:

function addStopPoint() {
    $("#stop-point-content").append(stopPointHtml())
}

点击后,如果我向下滚动了一点,它会将我移回页面顶部(当然,因为提供了 # 空 id 值)。但是我怎样才能使我在页面上的位置不会改变(意味着滚动位置)。

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    将事件作为参数传递给您的函数并添加此语句。 event.preventDefault() addstoppoint 函数内部。

    【讨论】:

      【解决方案2】:

      使用preventDefault()

       $("#stop-point-btn").bind("click", function(e) {
              e.preventDefault();
              addStopPoint();
          });
      

      请记住:

      从 jQuery 1.7 开始,.on() 方法是 将事件处理程序附加到文档。对于早期版本, .bind() 方法用于将事件处理程序直接附加到 元素。

      【讨论】:

      【解决方案3】:

      替换 javascript:void(0) 中的 href 值;并且点击链接不会产生任何效果

      <a href="javascript:void(0);" id="stop-point-btn">+ add stop-point</a>
      

      【讨论】:

      • 这对我有用,因为我需要一个空的父 A 来退出点击切换,但仍然允许孩子充当链接。
      【解决方案4】:

      您需要传递href 值是javascript:void(0);,它返回undefined,这就是浏览器停留在同一页面而不滚动页面的原因。

      <a href="javascript:void(0);" id="stop-point-btn">+ add stop-point</a>
      

      【讨论】:

        猜你喜欢
        • 2023-04-10
        • 1970-01-01
        • 1970-01-01
        • 2019-04-13
        • 1970-01-01
        • 2020-02-28
        • 2010-11-04
        • 1970-01-01
        • 2014-10-29
        相关资源
        最近更新 更多