stopPropagation在绝对定位元素中不起作用

时间:2012-03-06 15:30:06

标签: jquery

我有一个容器,它有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 ...我怎么能避免这种情况?有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

this始终为#container,因为这是事件“绑定”的元素。

尝试使用e.target代替thise.target将永远是触发事件的元素,而this将是它“绑定”的元素。

DEMO:http://jsfiddle.net/usmjr/2/

P.S。 stopPropagation不适用于.delegate,因为delegate通过传播事件来工作,因此您无法停止传播。您可以让其他事件停止传播到委派事件,但是一旦您点击委托事件就不会。 http://api.jquery.com/delegate/#notes-0