假设我有这个:
<div id="outer">
<div id="inner">
</div>
</div>
外层div的尺寸为500x500,内层div的尺寸为100x100。我试图采用以下方法:
$('#outer').click(function() {
$('#outer').fadeOut();
});
但是当你点击#inner
的100x100区域时,它仍然会淡出。如何防止这种情况发生?
假设我有这个:
<div id="outer">
<div id="inner">
</div>
</div>
外层div的尺寸为500x500,内层div的尺寸为100x100。我试图采用以下方法:
$('#outer').click(function() {
$('#outer').fadeOut();
});
但是当你点击#inner
的100x100区域时,它仍然会淡出。如何防止这种情况发生?
我发现这段代码效果更好,而且不需要知道元素的id或class:
$('#outer').click(function(e) {
if (e.target === this){
$('#outer').fadeOut();
}
});
$(this).fadeOut();
。 - Ben Lee$('#outer').click(function(e) {
if (e.target.id === "outer"){
$('#outer').fadeOut();
}
});
捕获内部div上的点击事件并阻止其冒泡:
$('#inner').click(function(ev) {
ev.stopPropagation();
});
#outer
捕获点击事件,而内部元素则不需要。内部的div中会有链接,因此这些链接需要能够被点击而不会关闭。一旦点击了#outer
,它应该关闭。 - steve