仅禁用滚动到onclick href元素

时间:2019-11-05 09:42:03

标签: javascript jquery onclick stoppropagation

我在页面上有一些元素,其后有手风琴/ tab UI元素,当用户单击一个元素时,由于{{1中的锚点,它会打开并滚动到页面的顶部。 }}。我想停止仅 的跳跃行为。 这是此类元素的一个示例;

href

由于此元素与各种CMS和UIX相关,所以我无法更改<a class="data switch" tabindex="-1" data-toggle="trigger" href="#description" id="tab-label-description-title"> More info </a> 的值,这是大多数对类似问题的回答。

所以我尝试使用JavaScript / jQuery这样的东西;

href

这确实停止了元素的跳转,但同时也停止了其他所有使元素完全不起作用的事情。所以我的问题是; $('.data.switch').on('click', function(e) { e.stopPropagation(); }); 操作是否有某种变体,只能禁止跳转到锚点元素?

编辑:我在这里大声思考;例如stopPropagationstopPropagation停止所有冒泡动作,难道没有办法只指定滚动吗?或者是一种变通方法,在onclick上它会读取当前的滚动位置并强行停留在该位置(尽管感觉很hack)。?

1 个答案:

答案 0 :(得分:0)

您可以通过遵循以下步骤来达到目标​​

在您的 HTML 代码中,添加

之类的id标签
<a class="data switch" id="dataSwitch" tabindex="-1" data-toggle="trigger" href="#description" id="tab-label-description-title">
    More info
</a>

并在您的 jquery 中使用文档准备功能

$(document).ready(function () {
    $('#dataSwitch').on('click', function (e) {
        e.stopPropagation();
    });
});