首页 > 解决方案 > 如何在具有去抖动的方法中访问事件对象 - Vue

问题描述

无法event在去抖动方法中获取对象:

methods: {
  fetchData: _.debounce(function(e) {
    console.log(e) // return undefined
  }, 500)
}

是否可以在方法中访问事件对象?我的目的是检查按下的键码是什么:

if (e.keyCode >= 65 && e.keyCode <= 80) {
  // do some stuff
}

我这样调用方法fetchData

<input @keyup="fetchData()" v-model="name" type="text">

标签: javascriptvue.jslodash

解决方案


这是 vue js 示例,缺少@keyup="fetchData($event)" 将事件传递到 debounce

new Vue({
  el: '#app',
  data() {
    return {
      keywords: ''
    }
  },
  methods: {
    fetchData: _.debounce(function(e) {
      console.log(e.keyCode) // return undefined
    }, 500)
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.min.js"></script>
<div id="app">
  <input id="textInput" @keyup="fetchData($event)" />
</div>


推荐阅读