所以我试图捕获页面上的所有点击事件。
我可以用这个
window.addEventListener('click', function(e){
console.log(e.target);
}, true);
或
$("*").delegate("*", "click", function(e){
if (e.target === this) {
console.log(e.target);
}
});
有什么区别?
答案 0 :(得分:0)
实际上有几个不同之处:
你不能对jQuery .on()使用capture,这样的事情就不存在了。 jQuery只支持事件冒泡。但是,您可以使用.addEventListener()
jQuery .on()允许您为多个事件附加相同的事件侦听器,而.addEventListener只允许您一次向单个事件类型添加事件侦听器(尽管您可以使用类似< / p>
["event type 1", "event type 2"].forEach( function(i){
element.addEventListener(i, function(){} );
})
但那太乱了)
也许您会认为.on()和.addEventListener()都会将事件侦听器添加到事件目标中;它不是那么简单,至少不是jQuery。更多相关内容,有人请详细说明,因为我不是很清楚:P
使用.on()附加的事件侦听器可以通过调用另一个jQuery函数.trigger()来调用,但使用.addEventListener()连接的事件侦听器将不响应.trigger()