我有一个容器,它有no.of子元素。我只是将点击事件添加到我的容器(#container)。因为我使用这个功能,
$(document).delegate("#container", 'click', function(e){
e.stopPropagation();
alert(this.tagName); // it show the "div", but i clicked on "a"
})
它工作正常。但我绝对没有图像和'a'元素,但如果我点击图像或a,它就像容器div ...我怎么能避免这种情况?有什么帮助吗?
答案 0 :(得分:0)
this
始终为#container
,因为这是事件“绑定”的元素。
尝试使用e.target
代替this
。 e.target
将永远是触发事件的元素,而this
将是它“绑定”的元素。
DEMO:http://jsfiddle.net/usmjr/2/
P.S。 stopPropagation
不适用于.delegate
,因为delegate
通过传播事件来工作,因此您无法停止传播。您可以让其他事件停止传播到委派事件,但是一旦您点击委托事件就不会。 http://api.jquery.com/delegate/#notes-0