在之前做專案的時候經常會在主頁面上點擊某個按鈕,右側彈出一個div輸出對應內容的詳細資訊。此時,我是希望在滑鼠點擊彈出層外的時候關閉該彈出層,主要想法就是:
找到滑鼠點擊的那個元素
判斷這個元素是否在指定區域內,其實就是判斷它的父元素是不是彈出層
如果不是就對彈出層進行hide,如果是就不進行任何操作
具體實作
程式碼需要使用jQuery,程式碼如下:
$(document).mousedown(function(e){ if($(e.target).parent("#info").length==0){ $("#info").hide(); } }) $(document).mousedown(function(e){})
就是取得整個網頁文檔對象,類似原生的window.ducument
mousedown是滑鼠事件,是指當滑鼠指標移動到元素上方並按下滑鼠按鍵時,類似的事件還有:
mouseup:當在元素上放鬆滑鼠按鈕時
mouseover:當滑鼠指標位於元素上方時
$(e.target)
$(e.target)表示取得點擊事件的元素。
parent()
$(e.target).parent("#info").length是取得目前點擊事件元素帶有id為info的父元素。