将事件附加到DOM上的所有内容的最明智的方法是什么?

时间:2011-02-02 06:04:53

标签: javascript jquery dom javascript-events

所以标题有点耸人听闻,所以让我描述一下我想要完成的事情。我基本上想要从Firebug中制作'inspect element'悬停效果,因此用户最终可以从DOM中选择内容。

我从

的朴素实现开始
$('div').bind('mouseover', function() {
    $(this).css('border', '1px solid black');
}).bind('mouseleave', function() {
    $(this).css('border', 'none');
});

这有几个问题(其中一些我可以修复),但是直接且最明显的是冒泡,以便每个父<div>获得一个边框,并且它只附加到<div> s < / p>

我是否需要枚举我希望附加此事件的每个元素集?我是否需要以某种方式阻止冒泡,以便只有最上层的元素才能获得事件处理程序(这看起来像什么?)

欢迎任何和所有建议!

1 个答案:

答案 0 :(得分:5)

$(document).bind('mouseover', function(event) {    
    $(event.target).addClass('hover');
});

这会将一个事件处理程序附加到document,并且事件将冒泡到它们将被处理的位置。

See it on jsFiddle