banner
banner
banner
NEWS LETTER

案例-点击空白关闭弹窗

Scroll down

方案一: 监听 document.body 的点击事件,如果来源不在目标范围内则关闭

1
2
3
4
5
6
7
8
9
10
11
$(document).mouseup(function(e){
var _con = $(' 目标区域 '); // 设置目标区域
if(!_con.is(e.target) && _con.has(e.target).length === 0){ // Mark 1
some code... // 功能代码
}
});
/* Mark 1 的原理:
判断点击事件发生在区域外的条件是:
1. 点击事件的对象不是目标区域本身
2. 事件对象同时也不是目标区域的子元素
*/

方案二: 在弹窗下、所有页面内容上放一个遮罩,点遮罩关闭
方案三: 利用事件冒泡和 setTimeout 跳出事件队列的方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<body>
<div id="shard" ></div>
<div id="test">
<a href="javascript:;" id="button">clickMe</a>
<div id="content" style="display:none">show</div>
</div>


<script>
$('#shard').hide();
$('#button').on('click',function(){
$('#content').css('display','block');
$('#shard').off('click');
$('#shard').hide();
setTimeout(function(){
$('#shard').show();
$('#shard').one('click',function(){
console.log('click ...');
$('#content').css('display','none');
$('#shard').hide();
})
}
, 0);
})
</script>
其他文章
cover
浏览器缓存
  • 24/10/31
  • 11:05
  • JavaScript
cover
JS-一些补充
  • 24/10/31
  • 11:05
  • JavaScript
请输入关键词进行搜索