簡體   English   中英

如何斷開所有處理程序與滾動事件的連接?

[英]How to disconnect all handlers from the scroll event?

我正在查看一個包含 30-40 個 JavaScript 的巨大代碼庫,包括做各種事情,包括掛鈎事件。

我希望以編程方式斷開scroll事件(窗口或文檔)的任何處理程序。 最好從F12工具中的控制台選項卡。

在 JavaScript 中可能嗎?

您可能已經發現不能使用removeEventListener ,因為您需要知道哪個函數是要分離的事件處理程序。

但是您可以在addEventListener周圍創建一個包裝器,因此當它被調用時,您不會將其轉換為對真正的addEventListener方法的調用。

您可以將此script元素放在head部分,任何包含庫的script標記之前

<script>
window.origAddEventListener = window.addEventListener;
window.addEventListener = function (type, f, options) {
    if (type === "scroll") return; // do not add the listener
    window.origAddEventListener(type, f, options);
};
</script>

您可以為document.addEventListener做類似的事情。

通過這種方式,您可以防止window (或document )元素上的scroll事件注冊事件處理程序。

暫無
暫無

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

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