所以我只想在用户将鼠标放在 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/

10-11 12:04