地图,rails 4.2,javascript,mouse-over,只工作一次(或两次).. 然后在重新加载后

maps, rails 4.2, javascript, mouse-over, only working once (or twice) .. then after reload

我在 rails 4.2 上做了一张地图。 Javascript添加pin,以及mouse-overpin时的一些信息,像这样;

marker = new google.maps.Marker({
          position: position,
          map: map,
          title: "title_x",

.. 另外,我为每个标记添加了一个信息window,如下所示:

google.maps.event.addListener(marker, 'click', (function(marker, i) {
  return function() {    infoWindow.setContent("contentx");                         
infowindow.open(map, marker.serviceObject);}
})(marker, i));

问题 1:当我在引脚上执行 'mouseover' 时,它会显示标题。那挺好的。但是,它只这样做了一两次或三次——然后什么也没有。重新加载页面时,或者 - 打开另一个选项卡,或者在返回另一个程序后(更改 window) - 它再次起作用,一次或两次。

问题2:信息window根本打不开,比方说,当我'click'到pin上时,没有任何反应。

在SO中阅读了很多答案,我尝试了这些东西,但没有改变。

a/删除application.js
中的turbolinks-line 另外:添加这个:data-no-turbolink(进入 navigation-link,进入包含地图的 div)

b/ 在 'main' javascript 文件中: $(文档).on('ready page:load', 函数 () { 加载脚本(); });

c/ 在显示地图的文件中):

<script type="text/javascript">
$(document).on('ready page:load', function () {initialize();}); // ADDED
  window.nearbys= <%=raw @myparams.to_json %>; 
  google.maps.event.addDomListener(window, 'load', initialize);
</script>

当我添加线 (ADDED) 时,至少,它显示了地图和图钉(之前,没有反应)。即使在我看来,同一条指令被执行了两次——无论如何,它是有效的。

这样,我的问题: - 我在 SO 中可以读到的内容似乎是人们禁用了 turbolinks - 我做到了,没有改变。 - 另外,似乎某些东西在重新加载后执行了一次(对我来说,它发生了几次?但这可能取决于其他问题?)

对于任何 link(除了我尝试过并在上面描述的解决方案之外)我会很高兴。 另外,我很乐意根本不使用 turbolinks。

谢谢

所以找到了对自己有用的东西。

问题 a/,图钉的 not-updated 标题:有一篇 SO 文章说:如果在 Firefox 上工作,问题。最新的GoogleAPI有bug。据说可以与 3.16 一起使用,但是,不再支持 API。 - 没问题,所以使用 Chrome 或 IE - 它起作用了:将鼠标悬停在图钉上,并显示标题(第一个,第二个 .. 任何时候鼠标悬停)。

问题 b/ 信息窗口不工作:这段代码非常简单

@users = User.all
@hash = Gmaps4rails.build_markers(@users) do |user, marker|
  marker.lat user.latitude
  marker.lng user.longitude
  marker.title = "title" // ADDED
  marker.infowindow = "iw" // ADDED
end

https://github.com/apneadiving/Google-Maps-for-Rails, and very clear visible in all its components (model, view, control, and JS) here: https://github.com/JonKernPA/gmaps 所示(只是看到了代码,没有尝试 b/c 不同的 ruby 版本以及任何问题..但遵循代码示例) - 并添加(添加)了一个标题和信息窗口 - 它就像它应该的那样工作。

更好:)) issue a/ 似乎是'cured':(根据用户的行为,实际上,我认为在通常情况下):用户习惯于'click' 到图钉上,然后出现信息窗口。这似乎在 Firefox 中触发了 JS/load/page-refresh (不管它是什么)。也就是说 - 下一个鼠标悬停(显示标题)将起作用。很好玩是不是。

感谢 gmap4rails 的创建者,这是一件好事。