我动态地创建了一个div
对象,然后根据用户查询中的数据将spans
追加到该对象中。
我使用的是on(featureDiv, "click", featureClicked);
然后我有:
function featureClicked(result) {
console.log(result);
}
字符串
我遇到的问题是,如果点击了span
对象,它将返回span
对象。但是,我只想获得div
,因为我放置了一个唯一的ID,根据用户选择的div
,我需要访问该ID以在另一个查询中使用。
如何使用on
始终使用div
对象而不是span
对象?
2条答案
按热度按时间xurqigkl1#
如@Himanshu所述,当把click事件附加到div时,
要获取事件所附加的元素,必须使用
event.currentTarget
,因此,如果您单击span,
event.target
将引用当前单击的节点(span),而event.currentTarget
将引用div(事件附加在其中)。见下文工作样品:
wfsdck302#
您需要了解click事件在这里是如何工作的。当一个事件被附加到父元素并且该事件从子元素触发时,
event.target
属性将返回触发该事件的元素。而event.currentTarget
属性将返回附加了该事件的元素,即父元素。因此,要获取
div
元素,必须访问event.currentTarget
属性。引用自this blog post:
<p>
或<span>
上),event.target都指向节点(用户单击的位置)<p>
节点上,则event.currentTarget指的是<p>
,而event.target仍然指的是<span>
。