2011-08-10 5 views
0

J'ai quelques divs ci-dessous les uns des autres, il y a un porte-bouton et carte de chaque div et j'ai ce genre de code:jquery et cartes google api dans Firefox

function mapInitialize(lat, lng, mapDiv, place) { 

    //load google maps 

} 


$(".localize").click(function(){ 

      place = ... 
      lat = ... 
      lng = ... 

      mapDiv = $(this).parent().find(".map_canvas"); 
      mapDiv.slideToggle(300); 
      t=setTimeout("mapInitialize(lat, lng, mapDiv, place)",350); 

}); 

-à-dire lorsque je clique sur un bouton (classe "localize"), slideToggle (méthode) est appelée sur le support de carte (mapDiv) et ensuite, sous le bouton, la carte est chargée sans problème. Quand je clique à nouveau sur le bouton, le div est fermé et tout va bien. Le problème est que quand je le fais dans Firefox (3.6, 4, 5), quand je clique sur le bouton pour fermer le div avec map, le div est fermé mais il y a un espace vide avec widht et hauteur de précédemment carte ferméeDiv sous le bouton. Il ne devrait pas être là, tout devrait retourner à l'état précédent, c'est-à-dire que les divs devraient être en dessous les uns des autres sans espaces supplémentaires entre eux.

Vous pouvez vérifier de quoi je parle au http://hratpoker.sk (ou http://hratpoker.sk/test2.html où seul le code nécessaire est utilisé), lorsque vous cliquez sur le bouton de la loupe.

Cela fonctionne parfaitement dans Chrome, Opera, IE8, IE9, seul Firefox est un problème. Avez-vous une suggestion pourquoi? Merci d'avance!

Répondre

0

Essayez d'appeler:

google.maps.event.trigger (carte, "redimensionner");

Une fois la div masquée, pour redimensionner la carte.

Vous pouvez également définir la propriété CSS "display: none;" sur la carte DIV pour l'arrêter d'être utilisé pour faire circuler la page.