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
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
});