假设我有一个父元素,其内部嵌套了许多子元素:
<div id="p">
<div id="c1">
<div id="c2"></div>
<div id="c3"></div>
</div id="c4">
<div id="c5"></div>
</div>
</div>
我已经在父元素上绑定了一个 click
事件:
$('#p').bind('click', function() {
alert($(this).attr('id'));
});
因为事件被分配给了父元素,所以我总是看到父元素的ID,但是我想知道有没有可能找出哪个子元素被点击了?
我也无法将事件分配给子元素或从父DIV中删除事件侦听器。
$(event.target).attr('id')
是event.target.id
的远慢于它的版本 - 请参见 http://bit.ly/jqsource 并搜索Sizzle.attr = function
。jQuery(或者更确切地说是 Sizzle)必须通过所有这些代码来获取您的 id,而直接使用 DOM 就可以为您获取它。 - Remy