2011-01-19 2 views
0

Je veux régler le zoom variable comme map.GetZoom() mais je reçois des l'erreur suivante dans les deux Chrome et Firefox:TypeError Uncaught dans Chrome et non une fonction dans FireFox

Chrome

Uncaught TypeError: Object #<an Object> has no method 'getZoom' 

Firefox

gmap.getZoom is not a function 
zoom = gmap.getZoom(); 

Première question Quelle erreur ai-je commise dans mes codes?

default.js

window.gmap = { 
zoom_Changed: function() { 

zoom = gmap.getZoom(); 

if(zoom > 15) { 
    document.write("hello"); 
} else { 
} 
} 
}; 

Edit: Gmap est défini dans mon views.py et la fonction zoom_Changed est pour l'écouteur d'événement dans mon views.py.

views.py

maps.event.addListener(gmap, 'zoom_changed', 'gmap.zoom_Changed'); 
+0

Utilisez-vous Google Maps? Parce que, sinon, vous créez juste un objet 'gmap'. Vous appelez 'gmap.getZoom', mais vous ne définissez jamais ce que c'est. – sdleihssirhc

+0

Oui, j'utilise Google Maps. Gmap est défini dans mon Django views.py. – silverbtf

Répondre

0

Au lieu de zoom = gmap.getZoom();, il devrait être zoom = this.getZoom();.

0

est-ce getZoom() ou GetZoom()? L'enveloppe est différente dans la question et l'exemple de code. Ce que @silverbtf dit est en partie juste, je crois, (difficile pour moi de tester sur le netbook je suis sur). Toutefois, en définissant gmap à nouveau à un littéral d'objet (window.gmap = {...}), vous supprimez toute variable gmap existante attachée à l'objet window.

vous pourriez peut-être réécrire votre code comme ceci:

gmap.zoom_Changed = function() { 
    var zoom = this.getZoom(); // or .GetZoom() 
    if (zoom > 15) { 
     console.log('over 15'); 
    } else { 
     console.log('under 15'); 
    } 
} 

cette façon, vous fixer une nouvelle méthode pour la gmap déjà existant au lieu de souffler loin.

Questions connexes