繁体   English   中英

* this *优于event.target

[英]Advantage of *this* over event.target

在事件监听器中使用thisevent.target更好/更快

我一直在编写这样的代码(例子是jQuery):

jQuery('input').bind('keyup', function (e) {
 var j = jQuery(e.target);
 foo(j.attr('id') , j.val() );
});

我被告知用this取代e.target ,因为它“更好”。 这个或那个真的有什么优势吗?

我使用target是因为它适用于委派事件,因此它是一种更通用的解决方案。 我在基准测试时遇到了麻烦,因为我的测试结果很混乱(尽管很明显,在这种情况下,差异太小而无关紧要)

一个并不比另一个好,但它们做了不同的事情: 是指事件附加到的元素,而event.target是调用事件的元素。

例如

div id=foo   
   div id=bar

当click附加到foo并单击bar时,该事件将冒泡到foo。 如果将引用fooevent.targetbar

最后,它取决于您需要处理的元素。

api.jquery.com/event.target上有一个小例子,它说明了event.target。 这是一个使用该示例的小样本,但也显示了这个http//jsbin.com/adifan/edit#javascript,html,live

那么,jQuery文档很清楚:-)

target属性可以是为事件注册的元素或其后代。 将event.target与此进行比较通常很有用,以确定是否由于事件冒泡而处理了事件。 当事件冒泡时,此属性在事件委派中非常有用。

(来源: http//api.jquery.com/event.target/

此链接解释了“事件冒泡”一词: http//www.quirksmode.org/js/events_order.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM