色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue click 全局

方一強1年前9瀏覽0評論

在Vue中,除了默認的@click事件之外,我們還可以通過v-on來實現更多的事件綁定。通過全局的事件監聽器,我們可以很方便地捕獲到頁面上的任何一個元素的點擊事件。下面是一個簡單的示例:

Vue.config.keyCodes.f1 = 112;
document.addEventListener('keydown', function(event) {
if (event.keyCode === 112) {
alert('You pressed F1');
}
});

上面的代碼為我們注冊了一個全局的按鍵事件,當用戶按下F1時,會彈出一個提示框。這里我們使用了Vue.config.keyCodes來注冊自定義的按鍵碼,然后通過document.addEventListener來監聽按鍵事件。同樣的道理,我們也可以注冊全局的點擊事件:

// 注冊全局點擊事件
Vue.directive('click-outside', {
bind: function(el, binding, vnode) {
el.clickOutsideEvent = function(event) {
// 判斷點擊的元素是否為當前元素或子元素
if (!(el === event.target || el.contains(event.target))) {
// 如果不是,則執行回調函數
vnode.context[binding.expression](event);
}
}
document.addEventListener('click', el.clickOutsideEvent);
},
unbind: function(el) {
document.removeEventListener('click', el.clickOutsideEvent);
}
});

上面的代碼使用了Vue.directive來注冊一個全局指令,在指令的bind函數中我們注冊了一個點擊事件的回調函數,然后使用document.addEventListener來監聽全局的點擊事件。在回調函數中,我們判斷點擊的元素是否為當前元素或者它的子元素,如果不是,則執行傳入的回調函數。

使用時,我們只需要在任何一個元素上使用v-click-outside指令,并傳入一個回調函數即可:

點擊我之外的任何地方都會執行doSomething函數

上面的代碼中,在div元素上使用了v-click-outside指令,然后將doSomething函數作為指令的參數傳入。當用戶在div元素之外點擊任何一個元素時,就會執行doSomething函數。