暂时禁用所有onclick事件并将其绑定回来

Sfi*_*oza 0 javascript jquery bookmarklet cross-browser

如何禁用页面上的所有onclick事件,绑定我的自定义函数,并在执行后启用所有以前的事件?

我建立一个书签,它应该已经任意加载页面上工作,我使用jQuery来处理我的自定义逻辑(它被加载后的页面jquerified).请注意,我没有任何控制哪些事件和何时被绑定.

目前我找到的最好的稳定解决方案是取消绑定事件,通过自定义函数绑定阻止默认操作,然后重新加载页面.这有效,但我想避免重新加载.部分解决方法是重新加载页面并滚动到上一个位置(如何实现此效果?).一些可能的解决方案会使用iframe,但我宁愿避免这种情况.

alg*_*thm 6

将div元素放在所有......更容易

CSS

.noclick {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 9999; /* or maybe higher */

    background-color: transparent;
}
Run Code Online (Sandbox Code Playgroud)

jQuery的

jQuery(document).ready(function() {
    jQuery('body').append('<div class="noclick" />');
});
Run Code Online (Sandbox Code Playgroud)

  • 当用户点击页面时会发生什么?您仍然可以通过键盘导航单击元素。;) (2认同)