點選頁面其它地方隱藏該div的兩種思路

2022-02-25 05:13:55 字數 1113 閱讀 2526

第一種思路分兩步 

第一步:對document的click事件繫結事件處理程式,使其隱藏該div 

第二步:對div的click事件繫結事件處理程式,阻止事件冒泡,防止其冒泡到document,而呼叫document的onclick方法隱藏了該div。 

$(document).bind('click',function()); 

$('#test').bind('click',function(e)); 

//阻止冒泡到document的click事件

這樣當點選頁面非div區域的時候,直接或層層冒泡會呼叫document的onclick方法,隱藏該div,而點選div或其子元素的時候,事件總會冒泡的div本身,

這時候會阻止事件繼續冒泡,不會呼叫doument的onclick方法致使div被隱藏,從而完成了我們的需求。

思路二

我們之前提到,在觸發dom上的某個事件的時候會產生乙個事件物件event,這個物件包含著所有與事件有關的資訊,包括產生事件的元素、事件型別等相關資訊,

思路一中div的click事件處理程式傳入的引數就是這個event物件。訪問ie中的event物件有幾種不同的方式,取決於指定事件處理程式的方法。直接為dom元素添

加事件處理程式時,event物件作為window物件的乙個屬性存在。 

event物件包含了乙個重要屬性:target(w3c)/srcelement(ie),這個屬性標識了觸發事件的原始元素,思路二就是要利用這個屬性。我們可以直接對document

的click事件繫結事件處理程式,在事件處理程式中判讀事件源是否為id==test的div元素或其子元素,如果是則方法return不做操作,如果不是則隱藏該div。

$(document).bind('click',function(e) 

elem = elem.parentnode; 

} $('#test').css('display','none'); //點選的不是div或其子元素 

}); 

這樣當點選頁面任何地方的時候都會層層冒泡至document的click事件,事件處理程式會判斷事件源是否為id==test的div或其子元素,如果是方法return,否則隱藏該div,也能夠實現我們的需求。

點選頁面其他地方隱藏彈窗

doctype html html head meta charset utf 8 title title script src js jquery 2.1.3.min.js script style tip style head body button 點我 button div class ti...

點選頁面div彈窗以外隱藏的兩種思路

在本文為大家介紹兩種思路實現點選頁面其它地方隱藏該div,第一種是對document的click事件繫結事件處理程式.第一種思路分兩步 第一步 對document的click事件繫結事件處理程式,使其隱藏該div 第二步 對div的click事件繫結事件處理程式,阻止事件冒泡,防止其冒泡到docum...

js隱藏顯示div頁面方法

首先,先上圖 這是js 這是h5及css樣式 效果圖,由於用於測試,比較簡陋,不要在意,哈哈哈哈!給大家測試 有需要可以複製 顯示 隱藏你好世界!第一種方法 document.getelementbyid demo style.visibility hidden 隱藏 document.getele...