判斷頁面的點擊事件是否發生在某元素上


 

本文地址:https://www.cnblogs.com/veinyin/p/10999265.html 

 

有時我們需要判斷頁面的點擊事件是否發生在某元素上

使用場景如  自己實現下拉框  點擊頁面其它地方時下拉部分隱藏

下面代碼為 vue 場景下

// template 中
div(ref="myDiv")

// created 中添加 click 事件句柄  判斷點擊事件是否發生在某元素上
document.addEventListener('click', event => {
    const e = event || window.event
    if (this.$refs.myDiv && !this.$refs.myDiv.contains(e.target)) {
        console.log('not in myDiv')
    }
})

 

如果是非全局組件  需要在 beforeDestroy 中移除事件句柄  

此時需要在 methods 中寫一個具名函數   第二個參數為該函數名

// 添加事件句柄
created() {
    document.addEventListener('click', myFunc)
},

// 移除事件句柄
beforeDestroy () {
    document.removeEventListener('click', myFunc)
},

// 相應函數
methods: {
    myFunc(event) {
        // 同上
    } 
}

 

 

 

END~~~≥ω≤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM