Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 查找为页面加载上的任何元素执行的所有blur()事件_Jquery_Firebug_Monkeypatching - Fatal编程技术网

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

Jquery 查找为页面加载上的任何元素执行的所有blur()事件,jquery,firebug,monkeypatching,Jquery,Firebug,Monkeypatching,我正在使用别人不久前编写的HTML/jQuery页面。为了进行调试,我需要找到页面加载时为任何元素触发的所有.blur()事件 我可以使用以下方法将事件绑定到所有元素: $("*").each(function() { $(this).blur(function() { alert(this); }); }); 但是,这将不起作用(即使我可以在加载页面之前运行它),因为页面上的脚本仍然会重新绑定.blur()事件 是否有办法查看页面加载时执行的.blur(

我正在使用别人不久前编写的HTML/jQuery页面。为了进行调试,我需要找到页面加载时为任何元素触发的所有
.blur()
事件

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

$("*").each(function() {
     $(this).blur(function() {
         alert(this);
     });
});
但是,这将不起作用(即使我可以在加载页面之前运行它),因为页面上的脚本仍然会重新绑定
.blur()
事件


是否有办法查看页面加载时执行的.blur()事件?我想我可能能够在运行时覆盖
.blur()
内部jQuery函数,而不会被blur事件绑定覆盖,但不确定这是否可能。

使用(jQuery 1.7+)将
blur
事件绑定到
文档

如果没有jQuery 1.7+,请改用:


我仍然不能完全确定你在问什么。是否要将自己的
blur
事件附加到所有元素(这对调试有何帮助?)?是否要列出所有附加了
blur
事件处理程序的元素?或者您想知道哪些元素在页面加载完成后触发了
blur
事件处理程序吗?@Anthony第三个选项正是我需要做的:)在这种情况下,@RobW的答案可能会满足您的需要。对元素多次调用
.blur()
(或
.click()
等)不会覆盖先前添加的处理程序。但是,如果现有jQuery代码确实(出于任何原因)执行
$('selector').unbind('blur').blur(函数(e){…})您可能会在找到正确的位置来附加泛型处理程序时遇到问题。事实上,我只是想澄清一下-我们所说的是程序触发(即,
$('selector')。触发器('blur');
$('selector').blur()
)还是通过用户与页面的交互触发?@Anthony程序触发。
$(document).on('blur', '*', function(e) {
    e.stopPropagation(); // Otherwise, many alerts will pop up for each event
    alert(this);
});
$(document).delegate('*', 'blur', function(e) {
    e.stopPropagation(); // Otherwise, many alerts will pop up for each event
    alert(this);
});