地图信息窗口未在鼠标悬停事件中打开(coffeescript)

时间:2015-04-11 22:18:25

标签: google-maps coffeescript

我研究并尝试了一切以找到解决方案。我不得不承认我不是coffeescript的专家。也许这是一个明显的错误,但我不知道如果有人能提供帮助我会很高兴。

我在谷歌地图上创建了标记。使用click applisteners,可以打开属于标记的特定htmls。现在我还需要一个infowindow用于每个标记,它应该在鼠标悬停时观察并在离开时关闭。 我不知道它为什么不起作用。我尝试了其他解决方案,这些解决方案主要在javascript中工作但在coffeescript中不适用于我。这是代码:

### define
lodash : _
backbone : Backbone
marionette : Marionette
app : app
parse : Parse
###

class MapView extends Marionette.View

  DEFAULT_CENTER : [0, 0]
  DEFAULT_ZOOM : 10

  className : "map-view"

  render : ->

    mapOptions =
      zoom: @DEFAULT_ZOOM
      streetViewControl: false
      panControl: false
      center: new google.maps.LatLng(@DEFAULT_CENTER...)
      mapTypeId: google.maps.MapTypeId.ROADMAP

    @map = new google.maps.Map(@el, mapOptions)

    @infowindow = new google.maps.InfoWindow()

  #[........................]

  makeJobMarker : (job) ->

    marker = new google.maps.Marker({
      map : @map
      position : {
        lat : job.get("location").latitude,
        lng : job.get("location").longitude
      }
      icon : "/images/marker/#{job.get("jobCategory")}.png"
      animation : google.maps.Animation.DROP
      zIndex : google.maps.Marker.MAX_ZINDEX + 1
      optimized : false
    })

    marker.addListener("mouseover", =>
      infowindow.setContent("Hello")
      infowindow.open(map,marker)
    )

    marker.addListener("click", =>
      app.router.navigate("/job/#{job.id}", trigger : true)
      app.vent.trigger("view:searchItem")

    )

    marker.jobId = job.id
    return marker

    #[.......................]

1 个答案:

答案 0 :(得分:0)

您错过了@密钥(javascript中等效的this)来访问私人会员@map@infowindow

marker.addListener("mouseover", =>
  @infowindow.setContent("Hello")
  @infowindow.open(@map,marker)
)