说我有这个:
<div id="outer">
<div id="inner">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
外部div的尺寸为500x500,内部尺寸为100x100.我正在尝试使用以下内容:
$('#outer').click(function() {
$('#outer').fadeOut();
});
Run Code Online (Sandbox Code Playgroud)
但是当你点击100x100区域时#inner,它仍会淡出.怎么预防这个?
Cri*_*ian 28
我发现这段代码效果更好,并且不依赖于知道元素的id或类:
$('#outer').click(function(e) {
if (e.target === this){
$('#outer').fadeOut();
}
});
Run Code Online (Sandbox Code Playgroud)
rah*_*hul 19
最好不要为内部元素分配点击处理程序.在click函数中,检查事件目标等于outer.就像是
$('#outer').click(function(e) {
if (e.target.id === "outer"){
$('#outer').fadeOut();
}
});
Run Code Online (Sandbox Code Playgroud)
捕获内部div的点击并阻止它冒泡:
$('#inner').click(function(ev) {
ev.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)
这是您上面的"外部"点击处理程序的补充.
| 归档时间: |
|
| 查看次数: |
10675 次 |
| 最近记录: |