google地图Autocomplete怎么区分开blur和place_changed事件?

发布于 2022-09-11 20:40:06 字数 1025 浏览 15 评论 0

我需要在未选择谷歌自动完成的下拉列表时触发blur事件,用 new google.maps.Geocoder().geocodeAPI返回的数据

选择下拉列表的地址使用place_changed事件返回的数据

在输入框blur事件触发的时候,如何分辨有没有触发place_changed的事件呢?
place_changed触发得比blur得晚,而且是个异步的事件,感觉不好判断啊

Geocomplete.prototype.init = function () {
  var _this = this;

  _this.autocomplete = new google.maps.places.Autocomplete(_this.dom, {
    types: ['geocode'],
    componentRestrictions: {
      country: 'au'
    }
  });

  _this.autocomplete.setFields([
    'address_component',
    'geometry',
    'formatted_address'
  ]);


  //  Google 搜索出来的下拉列表点击后才会触发的事件,是一个异步的
  _this.autocomplete.addListener('place_changed', _this.fillInAddress.bind(_this));
  //  搜索输入框 Blur 事件
  _this.dom.addEventListener('blur', _this.test.bind(_this));
  /**
   * 我需要在未触发 place_changed 事件的情况下失去焦点的时候, 触发Blur
   * 在触发 place_changed 后 就不需要触发 blur事件了
   * place_changed 是个异步的,会比Blur晚触发
   */
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文