查找在页面加载时为任何元素执行的所有blur()事件

时间:2012-01-19 09:43:28

标签: jquery firebug monkeypatching

我正在使用其他人之前写过的HTML / jQuery页面。对于调试,我需要查找在页面加载时为任何元素触发的所有.blur()事件。

我可以使用以下命令将事件绑定到所有元素:

$("*").each(function() {
     $(this).blur(function() {
         alert(this);
     });
});

但是这不起作用(即使我可以在页面加载之前运行它),因为页面上的脚本无论如何重新绑定了.blur()个事件。

有没有办法可以看到页面加载时执行了什么.blur()事件?我想我可以在运行时覆盖.blur()内部jQuery函数,但不会被模糊事件绑定覆盖,但不确定是否可能。

1 个答案:

答案 0 :(得分:2)

使用.on('blur', '*', ...)(jQuery 1.7 +)将blur事件绑定到document

$(document).on('blur', '*', function(e) {
    e.stopPropagation(); // Otherwise, many alerts will pop up for each event
    alert(this);
});

如果您没有jQuery 1.7+,请改用delegate

$(document).delegate('*', 'blur', function(e) {
    e.stopPropagation(); // Otherwise, many alerts will pop up for each event
    alert(this);
});