0

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

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

所以我不想制作一个新的 Autocomplete 对象。如何获取第一个只能访问 DOM 输入元素的 Autocomplete 对象?

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

4

1 回答 1

0

解决方法:

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

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

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

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

于 2019-02-05T18:45:43.497 回答