vue 解除鼠標的監(jiān)聽事件的方法
更新時間:2019年11月13日 09:43:07 作者:那年
這篇文章主要介紹了vue 解除鼠標的監(jiān)聽事件的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
描述:在移動端中,我們的首頁tab會緩存一些點擊事件,比如在機構頁面點開了下拉框==》在切換到賽事頁面==》在切換回機構頁面發(fā)現(xiàn)下拉款已經緩存了,是下拉的狀態(tài)
1.

2.

3.

解決:每次滑動到別的頁面的時候就需要解除綁定的點擊事件
做法:
1- 首先給父盒子添加 指令:
v-click-outside="hideBox"

2- script標簽中 自定義指令
// 自定義指令函數(shù)
const clickOutside = {
// 初始化指令
bind (el, binding, vnode) {
function clickHandler (e) {
// 這里判斷點擊的元素是否是本身,是本身,則返回
if (el.contains(e.target)) {
return false;
}
// 判斷指令中是否綁定了函數(shù)
if (binding.expression) {
// 如果綁定了函數(shù) 則調用那個函數(shù),此處binding.value就是handleClose方法
binding.value(e);
}
}
// 給當前元素綁定個私有變量,方便在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- 最后寫上需要恢復下拉的參數(shù)
hideBox () {
this.isSelect = false
this.selectStatus = false
},
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Vue3中Element-Plus分頁(Pagination)組件的使用
Element-Plus分頁(Pagination)組件在開發(fā)過程中數(shù)據(jù)展示會經常使用到,同時分頁功能也會添加到頁面中,下面我們就來學習一下它的具體使用,需要的可以參考一下2023-11-11
vue+express 構建后臺管理系統(tǒng)的示例代碼
這篇文章主要介紹了vue+express 構建后臺管理系統(tǒng)的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07

