L'API Google Maps v3, jQuery UI Tabs, carte pas de redimensionnement
Je suis à l'aide de l'API Google Maps v3, affichée sur un jQuery UI Onglet. J'ai été aux prises avec le déclenchement de mon google map pour redimensionner correctement lorsque l'onglet affichage de la carte est sélectionnée. Le jQuery documentation ici http://docs.jquery.com/UI/Tabs prévoit que:
Pour Google maps, vous pouvez également redimensionner
la carte une fois l'onglet s'affiche comme
ce:$('#example').bind('tabsshow', function(event, ui) { if (ui.panel.id == "map-tab") { resizeMap(); } });
Peu importe ce que j'essaie, le code ci-dessus ne fonctionne pas pour moi.
Le code suivant fonctionne dans la mesure où il affiche une alerte quand je sélectionne l'onglet 9. Pour cette raison, je sais qu'au moins, je suis bien d'isoler le droit à l'événement déclencheur. Voici le code:
$(function() {
$( "#tabs" ).bind( "tabsselect", function(event, ui) {
if (ui.panel.id == "tabs-9") {
alert("Alert is working");
}
});
});
Quand j'ai modifier ce code pour inclure le recommandé resizeMap(); commande, il ne fonctionne pas. Au lieu de cela, ce qu'il fait est d'ajouter les caractères "#tabs-9" à la fin de l'url, et puis il n'a même pas de sélectionner le bon onglet 9. Je ne peux même pas voir l'onglet 9 lorsque j'utilise ce code:
$(function() {
$( "#tabs" ).bind( "tabsselect", function(event, ui) {
if (ui.panel.id == "tabs-9") {
resizeMap();
}
});
});
Enfin, lorsque j'ai modifier le code pour inclure une autre commande resize "de google.cartes.de l'événement.déclencheur(carte, 'redimensionner');", elle ne fonctionne toujours pas. Au lieu de cela, il ne permet pas de moi pour sélectionner l'onglet 9, et il n'ajoute pas les personnages à la fin de l'URL comme dans le cas ci-dessus, mais il ne sera pas redimensionner la carte. La carte afficher toujours que partiellement complète et qu'elle a des bandes grises sur la droite. Voici le code:
$(function() {
$( "#tabs" ).bind( "tabsselect", function(event, ui) {
if (ui.panel.id == "tabs-9") {
google.maps.event.trigger(map, 'resize');
}
});
});
Les idées de ce que je peux essayer? Je suis perplexe. Merci.
resizeMap()
est pour V2. Il n'est jamais d'aller travailler pour vous.
Vous devez vous connecter pour publier un commentaire.
Ajouter ce qui suit à vos onglets constructeur:
Vous devez tester
ui.index
pour l'index basée sur 0 du panneau qui contient votre carte de Google, et bien sûr mettre à jour les références àmyMap
et#myTabs
.Voir la section Événements de la La carte de l'objet de la documentation pour plus d'informations sur l'envoi d'un redimensionnement de l'événement déclencheur.
myMap
n'est pas une chaîne. Vous devez être le maintien d'une référence à l'objet dans une variable qui contient le résultat retourné d'appeler le constructeur de la carte.show
événement est déclenché qu'après que le comité de l'élément contenant le contenu de l'onglet devient visible, de sorte à ce point, Google devrait être en mesure d'accéder navigateur attributs pour les dimensions de son conteneur. Il peut y avoir d'autres problèmes de votre balisage origine du visuel de l'incohérence, ou (plus probablement) la variable contenant votre carte ne peut plus être portée.alert(!!variableName)
renvoie true si c'est dans la portée, false sinon. Vous devriez être en utilisant un navigateur outil de débogage comme celles qui sont disponibles à partir de Chrome en appuyant sur CTRL+MAJ+J et en cliquant sur le bouton Scripts ou Firebug pour Firefox, ou tout au moins la console d'erreur de Firefox, qui est également accessible par CTRL+MAJ+J. Ils vous diront de toute les problèmes survenus lors de l'exécution de votre script.Je sais que ce sujet est ancien, mais pense que cela peut être utile à quelqu'un.
Pour éviter les problème de rendu avec jQuery UI Tabs et les Cartes de Google sur certains de ces onglets, vous pouvez effectuer les opérations suivantes:
J'ai réussi à le résoudre en initialisation de la carte lorsque la carte onglet est affiché, et l'édition d'un peu de css (le css est plus que probablement un rapport avec le thème de l'émission).
Puis ajouter un peu de CSS pour corriger la carte de contrôle si elles sont hors de place etc.
si max-width de toutes les images est réglée à 100%, vous obtiendrez des problèmes.
Espérons que cette aide!
D'abord, allez dans le dossier où vous avez mis le modèle d'onglet, recherche pour l'
<li>
balise de charger votre carte d'onglet et de mettre ceci à l'intérieur:Et dans le script de carte à droite après le
mettre ceci:
j'ai résolu simplement en css
Puis masquer le caché onglet :