在Vue中,我們經常需要獲取用戶在頁面上的點擊事件,便于執行對應的操作。但我們也需要監聽除目標區域外的其他區域的點擊事件,以便于在用戶點擊該區域時執行對應的操作。下面是一個簡單的例子:
mounted() { this.addListener() }, addListener() { document.addEventListener('click', this.handleClickOutside) }, removeListener() { document.removeEventListener('click', this.handleClickOutside) }, handleClickOutside(event) { if (!this.$el.contains(event.target)) { // 在目標區域外的點擊事件 } }
如上所示,我們可以通過在mounted中調用addListener函數來監聽全局的點擊事件。并且在監聽事件中使用handleClickOutside函數,通過判斷目標區域是否包含事件的目標元素,來確定是否在目標區域的外部進行了點擊操作。如果在目標區域外部進行了點擊操作,則可以執行對應的操作。
如果我們需要在組件銷毀時移除監聽事件,我們可以在beforeDestroy中調用removeListener函數來實現:
beforeDestroy() { this.removeListener() }
通過如上所示的方法,我們可以實現監聽目標區域之外的點擊事件,來執行對應的操作,具有很大的實用性。
上一篇vue獲取父級頁面數據
下一篇vue獲取照片