addEventListener和jquery之间的区别?

时间:2014-04-01 18:23:33

标签: jquery events javascript-events

所以我试图捕获页面上的所有点击事件。

我可以用这个

window.addEventListener('click', function(e){
    console.log(e.target);

}, true);

$("*").delegate("*", "click", function(e){
    if (e.target === this) {
        console.log(e.target);
    }
});

有什么区别?

1 个答案:

答案 0 :(得分:0)

实际上有几个不同之处:

  1. 你不能对jQuery .on()使用capture,这样的事情就不存在了。 jQuery只支持事件冒泡。但是,您可以使用.addEventListener()

  2. 指定是在捕获阶段还是在泡沫阶段捕获事件
  3. jQuery .on()允许您为多个事件附加相同的事件侦听器,而.addEventListener只允许您一次向单个事件类型添加事件侦听器(尽管您可以使用类似< / p>

    ["event type 1", "event type 2"].forEach( function(i){ 
            element.addEventListener(i, function(){} ); 
    })
    

    但那太乱了)

  4. 也许您会认为.on()和.addEventListener()都会将事件侦听器添加到事件目标中;它不是那么简单,至少不是jQuery。更多相关内容,有人请详细说明,因为我不是很清楚:P

  5. 使用.on()附加的事件侦听器可以通过调用另一个jQuery函数.trigger()来调用,但使用.addEventListener()连接的事件侦听器将响应.trigger()