0

我只想根据不同 div 元素的 Mouseover 事件加载谷歌地图。为此,我只使用了以下简单代码。这段代码本身不起作用,有人能告诉我我犯了什么错误吗?

<script type="text/javascript">

  function initialize() {
    var mapDiv = document.getElementById('map-canvas');
    var map = new google.maps.Map(mapDiv, {
      center: new google.maps.LatLng(40.740, -74.18),
      zoom: 12,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var content = '<strong>A info window!</strong><br/>That is bound to a marker';

    var infowindow = new google.maps.InfoWindow({
      content: content
    });

    var marker = new google.maps.Marker({
      map: map,
      position: map.getCenter(),
      draggable: true
    });

    infowindow.open(map, marker);
  }

  google.maps.event.addDomListener($("#showmap"), 'mouseover', function(){ alert("Hi");});
</script>


<div id='showmap'>
  Show Map
</div>
<div id="map-canvas" style="width: 500px; height: 400px"></div>

上面简单的警报函数本身并不需要这个简单的代码。

4

2 回答 2

4

选择器返回 jQuery 对象,并且可以使用[0]. 另外,将其设为“addDomListenerOnce”,只需要初始化一次。

$("#showmap")[0]

看演示

google.maps.event.addDomListenerOnce($("#showmap")[0], 'mouseover', 
                                 function(){ initialize(); });
于 2012-07-10T02:34:08.973 回答
0

我只是尝试使用它,这也有效。

Java脚本代码:

  function initialize(lat,longit,content) {
    var mapDiv = document.getElementById('map-canvas');
    var map = new google.maps.Map(mapDiv, {
      center: new google.maps.LatLng(lat, longit),
      zoom: 14,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });


    var infowindow = new google.maps.InfoWindow({
      content: content
    });

    var marker = new google.maps.Marker({
      map: map,
      position: map.getCenter(),
      draggable: false
    });

    infowindow.open(map, marker);
  }

html代码:

 <div id='showmap' onclick="initialize(1.37422,103.945,'<h2>Tampines</h2>')">
  Show Map
</div>

我刚刚尝试使用来自 java 的想法,我们可以尝试从 onclick 调用方法并检查它是否有效,令我惊讶的是它有效。

于 2012-07-10T03:06:39.683 回答