2017-08-03 33 views
0

我正在尋找一個擁有30-40個JavaScript的龐大代碼庫,包括做各種各樣的東西,包括連接事件。如何斷開滾動事件中的所有處理程序?

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

這是可能的JavaScript?

回答

1

您可能已經發現您不能使用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事件。

相關問題