如点击某元素后弹出的遮罩层,而在关闭遮罩层时:如果不设置事件冒泡,点击事件绑定在当前元素(一般都会绑定在最外层的元素上),则当前元素及其子元素被点击的时候遮罩层都会关闭,如果不想子元素点击时也关闭遮罩层,就要给最外一层的子元素绑定点击事件,阻止事件冒泡。
原理:想在哪一层阻止事件冒泡就在哪一层元素绑定,即阻止了父元素事件继续向下渗透。
效果图:
代码区:
<div id="show-schedule">
<div onclick="stopBubble(this)">
白色区域内容。。。
</div>
</div>
<script>
//最外层的元素绑定点击事件,点击时关闭遮罩层
$('#show-schedule').on('click',function(){
$(this).hide();
});
//阻止冒泡的函数
function stopBubble(e){
// 非 IE 浏览器
if(e && e.stopPropagation) {
e.stopPropagation();
return;
}
// IE 浏览器
window.event.cancelBubble = true;
}
</script>