我在DIV中有一个关闭按钮,DIV和关闭按钮也附加了click()
个事件。当我单击关闭按钮时,它还会触发div click()
事件。我知道我可以在div中放置一个SPAN并将我的click事件附加到span而不是DIV,但是有一种方法可以保持div click事件和关闭按钮单击事件并且不会触发div {{1当我点击关闭按钮时?
click()
答案 0 :(得分:6)
将event.stopPropagation()
添加到<span>
点击事件处理程序:
$(document).ready(function() {
$("#sendFeedback").click(function() {
alert('test');
});
$("#closeFeedback").click(function(event) {
event.stopPropagation();
$("#sendFeedback").fadeOut();
})
});
.stopPropagation()
会阻止事件冒泡到div(或任何其他祖先):http://api.jquery.com/event.stopPropagation/
以下是您更新的jsfiddle:http://jsfiddle.net/jasper/t5VPN/2/
答案 1 :(得分:2)
是的。您应该在DOM树中取消事件的冒泡。
有关更多信息,请参阅DOM事件文档中的Event#stopPropagation()。
答案 2 :(得分:1)
$('#closeFeedback').click(function(e){
$('#sendFeedback').fadeOut();
e.stopPropagation();
});