2012-07-20 59 views
0

我想觸發一個jQuery事件,當鼠標懸停在谷歌地圖上的圖塊時。我能想到的最好的是。在谷歌地圖上觸發懸停在地圖圖塊上

$('div.tileclass').live('hover', function(){ 
    $("#debugger").prepend("test"); //Dummy just to test if this works 
}); 

這會觸發僅在地圖加載,但沒有一次加載頁面

可以在這裏看到的懸停動作:http://rider.cyclistsroadmap.com(儘管調試器的div將不顯示和警報往往是惱人的測試和希望了地圖加載)

任何方式能夠觸發動作在頁面加載

+0

我使用Firebug添加了css「pointer-events:none」到其他圖層之一,甚至完美地工作!任何想法如何我可以添加這從JavaScript的另一層的CSS? – paullb 2012-07-20 06:39:48

回答

0

後,您需要一個事件偵聽器添加到地圖中的鼠標移動事件,如:

google.maps.event.addListener(map,'mousemove', function(mev){ 
    var TILE_SIZE = 256; 
    var proj = map.getProjection(); 
    var numTiles = 1 << map.getZoom(); 
    var worldCoordinate = proj.fromLatLngToPoint(mev.latLng); 

    var pixelCoordinate = new google.maps.Point(
      worldCoordinate.x * numTiles, 
      worldCoordinate.y * numTiles); 
     var tileCoordinate = new google.maps.Point(
      Math.floor(pixelCoordinate.x/TILE_SIZE), 
      Math.floor(pixelCoordinate.y/TILE_SIZE)); 

    debug('TileX:' +tileCoordinate.x+' - TileY:'+tileCoordinate.y); 

}); 

注意,debug()函數包含在此separate file

這裏發佈的代碼主要是基於this example從文檔。