想做一个搜索栏,输入文字后会出现自动提示框,问题是如何输入文字1s后文本没改变再生成提示框

想做一个搜索栏,输入文字后会出现自动提示框,现在我已经在vue内通过@keyup="getKey",输入文本绑定getKey函数发送ajax请求,但是输入文本每次改变,提示框都会改变,我想在文本1秒没改变的情况下再生成提示框要怎么做,也就是说等我输入了完整的文本再进行搜索生成提示框

阅读 1.9k
1 个回答

我提供一下我的思路,看能不能帮助你解决这个问题:
1、在data中定义一个timer: null,用来存储定时器
2、在methods中的getKey函数这么写:

getKey(): {
    var _this = this;
    clearTimeout(_this.timer); //这里很重要,不管如何,都需要清除定时器,若用户持续输入,则不执行setTimeout里面的代码,相信你也能理解
    _this.timer = setTimeout(function(){
        //这里进行搜索并生成提示框
    }, 1000);
}
不懂之处,请留言评论,希望能对你有所帮助!
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题