如何禁用页面上的所有 onclick 事件,绑定(bind)我的自定义函数,并在执行后启用所有之前的事件?
我正在构建一个小书签,它应该适用于任何已加载的页面,并且我正在使用 jQuery 来处理我的自定义逻辑(页面在加载后进行 jquerified)。请注意,我无法控制绑定(bind)哪些事件以及何时绑定(bind)。
目前我发现的最佳稳定解决方案是取消绑定(bind)事件,通过自定义函数绑定(bind)以防止默认操作,然后重新加载页面。这可行,但我想避免重新加载。部分解决方法是重新加载页面并滚动到上一个位置(如何实现此效果?)。一些可能的解决方案会使用 iframe,但我宁愿避免这种情况。
最佳答案
在所有元素上放置一个 div 元素会更容易......类似于
CSS
.noclick {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 9999; /* or maybe higher */
background-color: transparent;
}
jQuery
jQuery(document).ready(function() {
jQuery('body').append('<div class="noclick" />');
});
关于javascript - 暂时禁用所有 onclick 事件并将它们绑定(bind)回来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14056534/