这通常是因为新页面的 DOM 在加载时,原有的事件监听器未能正确绑定。为了实现全局监听,可以采用以下方法:
解决方案
-
使用事件委托:
- 将事件监听器绑定到一个父元素上,而不是直接绑定到目标元素。这样即使目标元素在 DOM 中动态生成,事件仍然会被捕获。
-
确保脚本在 DOM 加载后执行:
- 确保你的脚本在 DOM 完全加载后执行,可以使用
defer属性或DOMContentLoaded事件。
- 确保你的脚本在 DOM 完全加载后执行,可以使用
-
使用
window对象:- 如果需要在多个页面中共享逻辑,可以将事件监听器绑定到
window对象。
- 如果需要在多个页面中共享逻辑,可以将事件监听器绑定到
【代码参考】
[jcode](https://code.juejin.cn/pen/7488634370333671459)