Vuejs - 在输入时,运行一个函数(但有延迟)

新手上路,请多包涵

我有一个输入字段,并且 v-on:input 它运行一个名为 activate 的方法,如下所示:

 export default: {
    data() {
        return {
            isHidden: true
        }
    },
    methods: {
        activate() {
            this.isHidden = false;
        }
    }
}

isHidden 打开/关闭一些图标(这个数据属性是什么并不重要;我只是将它用于示例目的)。

所以目前,当用户执行 input 时,它会立即打开 activate 功能。有没有办法通过 setTimeout 延迟它?我已尝试执行以下操作,但它不起作用:

 methods: {
    setTimeout(function() {
        activate() {
            this.isHidden = false;
        }
    }, 500)
}

原文由 MonkeyOnARock 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 277
2 个回答

尝试这个:

 methods: {
  activate() {
    setTimeout(() => this.isHidden = false, 500);
  }
}

原文由 Joe Attardi 发布,翻译遵循 CC BY-SA 3.0 许可协议

或者没有箭头功能:

 methods: {
    activate() {
        var that = this;
        setTimeout(function() { that.isHidden = false; }, 500);
    }
}

原文由 leshkin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏