2012-01-18 11 views
1

Googleマップapi v2を使用していくつかの問題があります。私が望むのは、ツールチップの上にマウスを置くことです。 以下は私のコードです。 Firefoxで動作しますが、マウスを非常にやさしく動かす必要があります。速く行くと隠れるでしょう(解決:マウスアウト機能の遅延を追加し、ツールチップを起動するかどうかをチェックします)と最悪の部分それはIEではまったく意識していません。私がピンポイントを越えれば、ツールチップを見ることができるだろうが、私はマウスの上に行くことができない。Googleマップapi v2 addDomListenerをIEで動作させる

function createHotelSearchMarker(point, number, message) { 
    var newIcon = new GIcon(G_DEFAULT_ICON); 
    wIcon.image = imageChart + "chst=d_map_spin&chld=0.5|0|CCCCCC|10|_|" + number + "&ext=.png"; 
    var marker = new GMarker(point, {icon: newIcon, clickable:true, zIndexProcess:importanceOrder}); 
    marker.importance = 1; 
    /*add listener for mouseover*/ 
    GEvent.addListener(marker, "mouseover", function() { 
     marker.openExtInfoWindow(
      map, 
      "mapInfoWindow", 
      "<div id='tooltip'>" + message + "</div>", 
      {beakOffset: 3} 
     ); 
     marker.setImage(imageChart + "chst=d_map_spin&chld=0.5|0|FF0000|10|_|" + number + "&ext=.png"); 
     marker.importance = 2; 
     marker.setLatLng(marker.getLatLng()); 

     /*i added a dom listener for the tooltip*/ 
     if(document.getElementById("tooltip") != null) { 

      GEvent.addDomListener(document.getElementById("tooltip"), "mouseover", function(){ 
       isFiredByDivListener = 1; 
       GEvent.trigger(marker,"mouseover"); 
      }); 

      GEvent.addDomListener(document.getElementById("tooltip"), "mouseout", function(){ 
       isFiredByDivListener = 0; 
       GEvent.trigger(marker,"mouseout"); 
      }); 
     } 
    }); 

    /*add a listener for mouse out*/ 
    GEvent.addListener(marker, "mouseout", function() { 
     map.closeExtInfoWindow(); 

     marker.setImage(imageChart + "chst=d_map_spin&chld=0.5|0|CCCCCC|10|_|" + number + "&ext=.png"); 
     marker.importance = 1; 
     marker.setLatLng(marker.getLatLng()); 

    }); 
    return marker; 
    } 

the marker will be return and 


if (marker != null){ 
       map.addOverlay(marker); 
      } 

あなたが再帰的マーカーマウスオーバーをトリガすることができ、この起こって、すなわち潜在的な問題を持っている私には思えるあなたの助けと時間を

答えて

0

、ありがとうございました。 2つのaddDomListenerイベントリスナーをマーカーのイベントリスナーの外に移動することをお勧めします。

GEvent.addListener(marker, "mouseover", function() { 
     ... 
      GEvent.addDomListener(document.getElementById("tooltip"), "mouseover", function(){ 
       GEvent.trigger(marker,"mouseover"); 
      }); 
+0

私の最初の考えでもありましたが、それはIEでもFirefoxでもうまくいきません – user745671

関連する問題