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