在事件侦听器中使用this或event.target更好/更快
我一直在编写这样的代码(例如是jQuery):
jQuery('input').bind('keyup',function (e) { var j = jQuery(e.target); foo(j.attr('id'),j.val() ); });
我被告知要用这个替换e.target,因为它是“更好”的.一个或另一个真的有什么优势吗?
我使用目标,因为它是一个更一般的解决方案,因为它适用于委派的事件.我有麻烦的基准测试,因为我的测试混乱的绑定(虽然,显然,在这种情况下,差异太小,无论如何)
解决方法
一个不比另一个更好,但是它们做了不同的事情:这是事件附加的元素,而event.target是调用事件的元素.
例如
div id=foo div id=bar
当点击附加到foo,并且单击了bar时,该事件将冒泡到foo.在这种情况下,将foo和event.target指向bar
最终取决于你需要处理的元素.
api.jquery.com/event.target中有一个小例子说明了event.target.这是一个使用该示例的小样本,但也显示了以下内容:http://jsbin.com/adifan/edit#javascript,live