jQuery 点击其他区域关闭弹出窗体效果实现
以前尝试过用body来,结果由于冒泡的缘故,导致就算点击,也会被body中的点击事件覆盖导致根本无法弹出窗体。
于是去查了一下:
1$(document).mouseup(function(e){
2 var _con = $(' 目标区域 '); // 设置目标区域
3 if(!_con.is(e.target) && _con.has(e.target).length === 0){ // Mark 1
4 some code... // 功能代码
5 }
6});
7/* Mark 1 的原理:
8判断点击事件发生在区域外的条件是:
91. 点击事件的对象不是目标区域本身
102. 事件对象同时也不是目标区域的子元素
11*/
12
在关于点击空白关闭弹窗的js写法推荐?看到的,里面有许多方法, 这是其中一种,感觉也挺好的。
关于is
和has
,按照字面上来读就好了:
关于is: http://api.jquery.com/is/
关于has: http://api.jquery.com/has/
关于target,我们已经知道event是什么东西了,那么target呢?
target 事件属性可返回事件的目标节点(触发该事件的节点),如生成事件的元素、文档或窗口。
可见:https://developer.mozilla.org/en-US/docs/Web/API/event.target 当然也可以看http://www.w3school.com.cn/jsref/event_target.asp
评论 (0)