Jquery event.currentTarget的实际用途?

Jquery event.currentTarget的实际用途?,jquery,Jquery,很明显,event.target处理启动事件的DOM元素。 和-event.delegateTarget提供了我们实际附加侦听器的DOM元素 但我很难理解我什么时候会使用-: 查看显示此示例的jQuery示例: 它似乎与event.delegateTarget $( "body" ).click(function( event ) { $( "#log" ).html( "clicked: " + event.currentTarg

很明显,
event.target
处理启动事件的DOM元素。
和-
event.delegateTarget
提供了我们实际附加侦听器的DOM元素

但我很难理解我什么时候会使用-:

查看显示此示例的jQuery示例:

它似乎与
event.delegateTarget

$( "body" ).click(function( event ) {
  $( "#log" ).html( "clicked: " + event.currentTarget.nodeName );
});

我点击的每一个地方——上面写着:点击“身体”——这与被授权目标的行为完全一样

问题

我会在哪些(现实生活)场景中使用
event.currentTarget
?(请举例说明)


注意-找不到任何currentTarget vs delegateTarget问题…

如果您有如下所示的HTML标记

<a href="http://www.someurl.com" data-ajax="true" data-id="345">
    <img src="company.jpg"/>
</a>

现在,在点击处理程序
事件中,target
指向图像,但实际上您已经点击了锚点,在点击处理程序中,您需要访问锚点的
数据id
属性以执行一些操作。要获取当前目标,您可以使用
event.currentTarget
访问锚定。

event.target
event.currentTarget
是W3C规范定义的属性:

  • :

    事件对象的此属性是事件被调度的对象 在…上当事件处理程序为 在事件的冒泡或捕获阶段调用

  • :

    在事件遍历时标识事件的当前目标 大教堂。它始终引用事件处理程序所使用的元素 附加到与事件相对的
    event.target
    ,它标识 事件发生的时间

此外,jQuery还添加了:

当前调用的jQuery事件处理程序所附加的元素

event.currentTarget
的区别在中解释

此属性在附加的委派事件中最常用
.delegate()
.on()
,其中事件处理程序附加在 正在处理的元素的祖先。例如,它可以被使用, 在委派点识别并移除事件处理程序

对于直接附加到元素的非委托事件处理程序,
event.delegateTarget
将始终等于
event.currentTarget

例如,如果单击以下HTML中的按钮:


按钮
$(“body”)。在函数(e)中的(“单击”和“.box”){
e、 delegateTarget;//正文
e、 currentTarget;/.box
e、 target;//按钮
});

event.currentTarget属性是当前响应DOM事件的元素,它是将事件处理程序绑定到的元素。至于真实世界的用法?不太确定。

看看我的演示。这不是你的答案。。。。我点击一个孩子,它显示了我没有测试过的最好的父亲(附件),但这个答案感觉是错误的。根据的MDN条目,它应该始终引用事件被委派到的元素。通过事件委派,区别变得很明显:Tnx,这并不能解释
event.delegateTarget和event.currentTarget之间的区别。这是jq的纯引语(我已经读过了)@RoyiNamir这段引语解释得很好。我加了一个例子。你的编辑让我明白了:-)谢谢。这就像是冒泡的中间阶段
$("a").click(function(){
    // Some stuff
});