vue 解除鼠標(biāo)的監(jiān)聽事件的方法
描述:在移動端中,我們的首頁tab會緩存一些點擊事件,比如在機構(gòu)頁面點開了下拉框==》在切換到賽事頁面==》在切換回機構(gòu)頁面發(fā)現(xiàn)下拉款已經(jīng)緩存了,是下拉的狀態(tài)
1.
2.
3.
解決:每次滑動到別的頁面的時候就需要解除綁定的點擊事件
做法:
1- 首先給父盒子添加 指令:
v-click-outside="hideBox"
2- script標(biāo)簽中 自定義指令
// 自定義指令函數(shù) const clickOutside = { // 初始化指令 bind (el, binding, vnode) { function clickHandler (e) { // 這里判斷點擊的元素是否是本身,是本身,則返回 if (el.contains(e.target)) { return false; } // 判斷指令中是否綁定了函數(shù) if (binding.expression) { // 如果綁定了函數(shù) 則調(diào)用那個函數(shù),此處binding.value就是handleClose方法 binding.value(e); } } // 給當(dāng)前元素綁定個私有變量,方便在unbind中可以解除事件監(jiān)聽 el.__vueClickOutside__ = clickHandler; document.addEventListener('click', clickHandler); }, update () { }, unbind (el, binding) { // 解除事件監(jiān)聽 document.removeEventListener('click', el.__vueClickOutside__); delete el.__vueClickOutside__; }, };
3-在export default 中注冊自定義指令
// 注冊自定義指令 directives: { clickOutside },
4- 最后寫上需要恢復(fù)下拉的參數(shù)
hideBox () { this.isSelect = false this.selectStatus = false },
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue3中Element-Plus分頁(Pagination)組件的使用
Element-Plus分頁(Pagination)組件在開發(fā)過程中數(shù)據(jù)展示會經(jīng)常使用到,同時分頁功能也會添加到頁面中,下面我們就來學(xué)習(xí)一下它的具體使用,需要的可以參考一下2023-11-11vue+express 構(gòu)建后臺管理系統(tǒng)的示例代碼
這篇文章主要介紹了vue+express 構(gòu)建后臺管理系統(tǒng)的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07vue.js watch經(jīng)常失效的場景與解決方案
這篇文章主要給大家介紹了關(guān)于vue.js watch經(jīng)常失效的場景與解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01