closest先檢查當前元素是否匹配,若是匹配則直接返回元素自己;若是不匹配就會逐級向上查找父元素,直到找到匹配選擇器的元素。若是什麼都沒找到則返回一個空的jQuery對象。dom
若點擊時的對象在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顯示和隱藏 } })