【问题标题】:Grab Preexisting google.maps.places.Autocomplete Object抓取预先存在的 google.maps.places.Autocomplete 对象
【发布时间】:2019-01-28 17:21:22
【问题描述】:

我在一页上有两个主要脚本。一个是站点范围的,并在站点上的每个 $("input.input-location") 上实现 Google 自动完成。另一个仅在搜索页面上。我需要在第二个脚本中使用 Autocomplete 对象的 getPlace() 方法。它们被很好地分割,并且不占用任何全局变量,这在这种情况下会带来问题。我无法从特定位置输入中抓取原始对象。我不能轻易更改站点范围的脚本,但如果必须的话我会这样做。而且我不能只更改特定对象的类,因为 a) 我还必须更改/添加到 CSS 和 b) 我必须重写我希望在整个站点范围内保持一致的所有选项和限制.

如果我创建一个新的 Autocomplete 对象,那么第二个对象具有正确的 getPlace() 并且第一个对象的 getPlace() 方法返回未定义。在第一个脚本中,我使用该位置来确定是否应该将输入值更改为第一个 PAC 值。如果我更改输入值,则没有一个正确的getPlace() 输出。

所以我不想创建一个新的自动完成对象。如何获取第一个只能访问 DOM 输入元素的 Autocomplete 对象?

在你问之前,是的,我一直在寻找这个问题的答案。相反,其他问题的答案出现了,例如Google Places Autocomplete API Multiple Instances,他们的问题恰恰相反:他们有多个输入,他们想要单独的对象并最终意外引用第一个对象。我在 Google 的 API 文档中也找不到解决方案。

【问题讨论】:

  • 对于谁反对这个,我想知道为什么?我的问题有什么问题?

标签: google-maps google-places-api googleplacesautocomplete


【解决方案1】:

解决方法:

$("#searchForm").off("submit"); 这将删除我添加到每个位置输入的父表单中的 eventHandler。

然后我在位置输入上创建一个新的 Google 自动完成对象。

然后我重写了原来的功能,最终还是需要自定义的东西。

同样,这只是一种解决方法。我仍然有两个对象。我只是不再有第一个弄乱东西的对象。我仍然想要一个真正的答案。

【讨论】:

    猜你喜欢
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    相关资源
    最近更新 更多