javascript - Vue 范围 : how to delay handling of @mouseover

标签 javascript scope vue.js delay mouseover

所以我只想在用户将鼠标放在 div 上至少 1 秒时执行操作。内部模板:

<div @mouseover="trigger"></div>

内部脚本:

data() {
    return {
        hovered: false
    }
}

methods: {
    trigger() {
        setTimeout(function(){ this.hovered = true }, 1000)
    }
}

我的问题是我不了解 Vue.因为 this.hovered 在另一个函数中,所以它找不到实际悬停的数据变量。有什么解决方案?

最佳答案

您是否尝试过在 setTimeout 中使用箭头函数?它将维护 this

data() {
    return {
        hovered: false
    }
}

methods: {
    trigger() {
        setTimeout(() => { this.hovered = true }, 1000)
    }
}

关于javascript - Vue 范围 : how to delay handling of @mouseover,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45462517/

相关文章:

javascript - 如何自动检测数组中的值并从另一个数组设置背景颜色

C++ 嵌套类访问

css - Vuetify 自定义样式的 vuetify 组件,如带有 css 的 v-textarea

javascript - 在数据属性对象上使用 get 和 set - VueJS

php - 检测窗口关闭

javascript - 无法在 .evaluate 中运行 FOR 循环(node-horseman/phantomjs)

Golang 函数包含匿名作用域

javascript - 有没有办法阻止滑动事件从子级传播到父级?

javascript - Angular $resource 中的自定义实例方法

javascript - 关于 Javascript 中函数对象作用域的快速介绍(我希望很简单!)...ode>