Uncaught TypeError: Impossible de définir la propriété "position" undefined
J'ai ce code qui me donne le message d'erreur étrange
Uncaught TypeError: Cannot set property 'position' of undefined
C'est l'intérieur d'un plugin jQuery pour afficher une carte google map dans une fenêtre popup.
J'ai été en utilisant le code quelque part d'autre, où il a bien fonctionné - la seule différence semble être ici que je suis maintenant à l'aide dans une fenêtre Popup. Ai-je raté un problème de portée ou quelque chose?
Toutes les variables comme geocoderParams et latlng sont remplis comme il se doit.
Googler le message d'erreur n'ont rien révélé de précieuses.
Le message d'erreur est exclu lorsque le google.cartes.Map() est appelée.
self = $(this)
self.hide()
geocoder = new google.maps.Geocoder
geocoderParams =
address: self.data('address') || settings.address
region: settings.region
results = geocoder.geocode geocoderParams, (results, status) ->
if status == google.maps.GeocoderStatus.OK
latlng = results[0].geometry.location
mapOptions =
mapTypeControl: false
overviewMapControl: false
zoom: settings.zoomLevel
center: latlng
mapTypeId: google.maps.MapTypeId.ROADMAP
map = new google.maps.Map(self, mapOptions)
self.show()
Vous devez vous connecter pour publier un commentaire.
J'ai regardé
google.maps.Map()
et la Google référence dit que le premier paramètre doit être unmapDiv:Node
qui est le conteneur de la carte et est généralement undiv
élément.Vous êtes de passage à
$(this)
qui est probablement un objet jQuery qui n'est pas ce que Google maps est attend. Je ne sais pas le reste de votre code, mais peut-être vous devriez juste être de passagethis
au lieu de$(this)
.$(this).get(0)
quand tout simplementthis
œuvres. Pourquoi créer un objet jQuery, vous n'en avez pas besoin?Si vous utilisez jQuery, vous devez passer la vanille
HTMLElement
(par exempleNode
) au lieu de jQuery sélection (p. ex.Array
/NodeList
) qui le$()
requête retourne.si vous ajoutez une commande de la console:
il sera de retour quelque chose comme:
pour obtenir la valeur de la jQuery tableau, remplacer:
avec:
J'ai rencontré cette erreur lorsque vous essayez de lancer la carte avec quelque chose comme ceci:
J'ai été en mesure de le résoudre en sélectionnant le premier (et le seul) élément que le sélecteur retourne en ajoutant
[0]
après le sélecteur: