簡體   English   中英

僅禁用滾動到 onclick href 元素

[英]Only disable scrolling to onclick href element

我在頁面上有一些元素,后面有手風琴/標簽 UI 的東西,當用戶單擊一個時,它會打開並由於href中的錨點而將其滾動到頁面頂部。 只想停止那種跳躍行為。 這是此類元素的一個示例;

<a class="data switch" tabindex="-1" data-toggle="trigger" href="#description" id="tab-label-description-title">
More info
</a>

因為這個元素與各種 CMS 和 UIX 相關的東西都綁定在一起,所以我不能像大多數類似問題的答案所暗示的那樣更改href值。

所以我嘗試了類似這樣的 JavaScript/jQuery;

$('.data.switch').on('click', function(e) {
    e.stopPropagation();
});

這確實停止了對元素的跳轉,但它也停止了其他一切,使元素根本不起作用。 所以我的問題是; 是否有某種stopPropagation動作變體只能禁止跳轉到錨元素?

編輯我在這里大聲思考; stopPropagationpreventDefault停止所有冒泡動作,沒有辦法只指定滾動嗎? 或者可能是一種解決方法,其中 onclick 它讀取當前的滾動位置並強制停留在 position (盡管這感覺很hacky)..?

你可以通過做以下事情來達到你的結果

在你HTML代碼中添加id標簽,如

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

並在您的jquery中使用准備好的文檔 function

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM