JavaScript:无论元素如何捕获事件

时间:2011-10-27 18:42:58

标签: javascript events dom

  1. 是否有任何现有的机制可以为具有此事件的页面上的所有DOM元素添加事件监听器以“聚焦”?如果没有,我该怎么做?

  2. 我想在任何DOM元素触发事件时随时调试console.log(某事)。我怎么能这样做?

  3. 编辑:请不要使用任何框架:)

4 个答案:

答案 0 :(得分:1)

您可以将事件绑定到body或html元素。或者包含所有html的任何其他元素。

或者如果您想使用jQuery,您可以执行类似

的操作
$("*").bind("focus", function(e){
    console.log("something");
})

答案 1 :(得分:0)

事件通过DOM“冒泡”,因此您应该能够将侦听器绑定到document,body,html或任何其他父元素(例如div),并侦听由其包含的元素触发的每个事件。

例如,使用JQuery,您可以这样做:

$(document).bind('focus', function(e) { console.log(e); });

这将记录每个焦点事件,无论哪个元素最初触发事件。

答案 2 :(得分:0)

您可以尝试在jQuery中使用:input伪选择器。

$(':input').focus(function(e){
    console.log(e);
});

这只会附加到您可能正在寻找的输入元素。

答案 3 :(得分:0)

这样的东西应该有效(使用jQuery)。

$("input").focus(function(){
   console.log($(this).attr("id"));
});

这是一个实例: http://jsbin.com/ipiciz/edit#javascript,html,live