點擊其它內(nèi)容觸發(fā)點擊事件

我真是實在想不到這個標(biāo)題應(yīng)該怎么寫,如果你一下子并不能理解。你可以看看我這個網(wǎng)站的搜索框。
個人網(wǎng)站

搜索框在網(wǎng)站的右側(cè),一開始搜索框是這樣的。


初始搜索框樣式

在點擊搜索圖標(biāo)的時候,搜索框會變成這樣。

點擊之后

在之后,如果你需要這個搜索框變成原來的樣式,只顯示一個個圖標(biāo)。你不需要再點擊這個搜索的圖標(biāo),只要點擊這個網(wǎng)站里除了這個圖標(biāo)和輸入框的其它內(nèi)容就可以。
要實現(xiàn)這個功能,我們就需要用到j(luò)s的點擊冒泡機(jī)制。這個機(jī)制等下我再來介紹,先來看看代碼。
<div class="searchbox"> <div class="page-header-search"></div> <div class="page-header-search-input" contenteditable="true"></div> </div>
這是html代碼,具體的樣式我就不貼出來了,想看樣式可以在上面那個網(wǎng)站里通過審查元素來看。最外面那個div就是整體的一個容器,里面第一個div是搜索框的圖標(biāo),第二個div是后面可以輸入框。
searchclick:function () { $(".page-header-search").click(function(){ $(".searchbox").css("left","0px"); $(document).click(function(){ $(".searchbox").css("left","210px"); }); event.stopPropagation(); }); $(".page-header-search-input").click(function(){ event.stopPropagation(); }); }
這是js代碼,其實就是兩個點擊事件而已。我們先設(shè)置搜索圖標(biāo)的點擊事件,對于css樣式的修改我就不解釋了。$(document).click(function(){}就是對document設(shè)置一個點擊事件,這個事件里的就是搜索框的隱藏函數(shù)。

下面重點解釋一下event.stopPropagation()和點擊事件的冒泡機(jī)制。
像我們平時用的js添加點擊事件ele.onclick=function(){}都是采用的事件冒泡方式。在點擊之后,會從一層一層往上冒泡。冒泡順序基本為div -> body -> html -> document(個別瀏覽器可能還會有其他內(nèi)容)。event.stopPropagation()這個函數(shù)的作用就是停止當(dāng)前的冒泡事件。

大概介紹完了,我們再來理理這個函數(shù)的運(yùn)行原理。我們在點擊圖標(biāo)的時候觸發(fā)這個點擊事件,然后添加了一個document的點擊事件,讓我們可以點擊其它內(nèi)容來隱藏搜索框。但是我們在點擊搜索框之后,因為點擊事件是冒泡的,它最后會冒泡到document這一層會觸發(fā)這個隱藏的函數(shù)。所以我們需要停止冒泡事件。

$(".page-header-search-input").click(function(){ });這個點擊函數(shù)是防止我們在點擊輸入框的時候產(chǎn)生的點擊事件冒泡上去從而觸發(fā)搜索框隱藏的事件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • (續(xù)jQuery基礎(chǔ)(1)) 第5章 DOM節(jié)點的復(fù)制與替換 (1)DOM拷貝clone() 克隆節(jié)點是DOM的常...
    凜0_0閱讀 1,511評論 0 8
  • //------------------------- 第一章 認(rèn)識JQuery ----------------...
    米塔塔閱讀 808評論 0 9
  • 問答 一、dom對象的innerText和innerHTML有什么區(qū)別? innerTextinnerText是一...
    婷樓沐熙閱讀 471評論 0 0
  • 很多年前,大概很多年前,具體記不清了,反正那個時候的我,只有十來歲,是個喜歡在網(wǎng)上看故事各類小說真人真事社會熱點新...
    韓譯是頭蠢驢閱讀 469評論 2 1
  • 有時候,我希望自己傻傻的,只做一件事。
    時間的箋閱讀 211評論 0 0

友情鏈接更多精彩內(nèi)容