2012-10-26 9 views
6

Ho una pagina con marcatori con InfoWindows che ho aperto su Click. Ho deciso di aprire piuttosto l'InfoWindows su MouseOver che funziona.Google Maps: apri InfoWindow al passaggio del mouse, chiudi e riapri al click

Ma trovo che dover spostare il mouse sulla croce dell'InfoWindow per chiuderlo sia un po 'impegnativo per questi pigri visitatori di Internet. Così ho aggiunto un evento Close su Click of the Marker che sta funzionando.

Quello che non riesco a capire è quello di essere in grado di riaprire l'InfoWindow sul Marker Fare clic invece di dover eseguire il mouseout per poter spostare il mouse sull'indicatore.

Il mio codice:

google.maps.event.addListener(CalMarker, 'mouseover', function() { 
    infowindow.setContent(contentStringCal); 
    infowindow.open(map,CalMarker); 
}); 
google.maps.event.addListener(CalMarker, 'click', function() { 
    infowindow.close(map,CalMarker); 
}); 

qualcuno mi può aiutare a riaprire la finestra cliccando sul marcatore?

Grazie in anticipo

PS: non riescono a dire "Ciao" al beggining del post, che è strano.

risposta

8

Prova questo:

google.maps.event.addListener(CalMarker, 'mouseover', function() { 
    //open the infowindow when it's not open yet 
    if(contentStringCal!=infowindow.getContent()) 
    { 
     infowindow.setContent(contentStringCal); 
     infowindow.open(map,CalMarker); 
    } 
}); 

google.maps.event.addListener(CalMarker, 'click', function() { 
    //when the infowindow is open, close it an clear the contents 
    if(contentStringCal==infowindow.getContent()) 
    { 
     infowindow.close(map,CalMarker); 
     infowindow.setContent(''); 
    } 
    //otherwise trigger mouseover to open the infowindow 
    else 
    { 
     google.maps.event.trigger(CalMarker, 'mouseover'); 
    } 
}); 

//clear the contents of the infwindow on closeclick 
google.maps.event.addListener(infowindow, 'closeclick', function() { 
     infowindow.setContent(''); 
}); 

Demo: http://jsfiddle.net/doktormolle/JXqLa/

+0

di lavoro, grazie mille ;-) – Tsokoa