點擊網頁空白區域,隱藏當前div彈框——jquery內置方法(closest)

一. closest方法介紹

1)定義

closest先檢查當前元素是否匹配,若是匹配則直接返回元素自己;若是不匹配就會逐級向上查找父元素,直到找到匹配選擇器的元素。若是什麼都沒找到則返回一個空的jQuery對象。dom

2)closest與parent方法對比

  • closest從當前元素開始向上匹配尋找,parent從父元素開始向下匹配尋找;
  • closest逐級向上查找,直到發現匹配的元素後就中止了,parent一直查找到根元素,而後把匹配的元素放進一個集合中;
  • closest返回0或1個元素,parent可能包含0個或多個元素。

二. 實踐:點擊蒙版後隱藏當前div

若點擊時的對象在div上,返回的對象length爲1;若點在div以外的區域,closest找不到匹配的元素返回對象length爲0。所以能夠實現當沒有點擊div時(返回對象length爲0),隱藏div。this

$('body').on('click', (ev)=>{
    let dom1 = $(ev.target).closest('.box').length//0爲沒有匹配找到,1爲找到
    if (dom1 < 1) {//點擊div以外時,將其隱藏
        this.show = false //定義v-show="show"控制div顯示和隱藏
    }
})

圖片描述

相關文章
相關標籤/搜索