我正在使用其他人之前写过的HTML / jQuery页面。对于调试,我需要查找在页面加载时为任何元素触发的所有.blur()
事件。
我可以使用以下命令将事件绑定到所有元素:
$("*").each(function() {
$(this).blur(function() {
alert(this);
});
});
但是这不起作用(即使我可以在页面加载之前运行它),因为页面上的脚本无论如何重新绑定了.blur()
个事件。
有没有办法可以看到页面加载时执行了什么.blur()事件?我想我可以在运行时覆盖.blur()
内部jQuery函数,但不会被模糊事件绑定覆盖,但不确定是否可能。
答案 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);
});