需求是點擊空白處關閉彈窗,同時彈窗內有點擊事件
一開始的思路是點擊彈窗阻止事件冒泡
不知道是結構太復雜還是怎樣,使用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上看到的,非常簡單的實現,這里的目標區域就是你的彈出窗口
