需求是点击空白处关闭弹窗,同时弹窗内有点击事件
一开始的思路是点击弹窗阻止事件冒泡
不知道是结构太复杂还是怎样,使用event.stopPropagation();无效
找到了有效的方法后,把内部的点击事件也阻拦掉了
只能在点击空白处时,判断是否是弹窗范围,看到了一段很好用的代码
$(document).mouseup(function(e){ var_con=$('目标区域');//设置目标区域 if(!_con.is(e.target)&&_con.has(e.target).length===0){//Mark1 somecode...//功能代码 } }); /*Mark1的原理: 判断点击事件发生在区域外的条件是: 1.点击事件的对象不是目标区域本身 2.事件对象同时也不是目标区域的子元素 */ 这是当初在stackoverflow上看到的,非常简单的实现,这里的目标区域就是你的弹出窗口