Uncaught TypeError в Chrome, а не функция в FireFox - PullRequest
0 голосов
/ 19 января 2011

Я хочу установить переменную zoom как map.GetZoom (), но я получаю следующую ошибку как в Chrome, так и в Firefox:

Chrome

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

Firefox

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

Первый вопрос Какую ошибку я допустил в моих кодах?

default.js

window.gmap = {
 zoom_Changed: function() {

 zoom = gmap.getZoom();

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

Редактировать: Gmap определяется в моем views.py, а функция zoom_Changed предназначена для прослушивателя событий в моем views.py.

views.py

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

Ответы [ 2 ]

0 голосов
/ 19 января 2011

это getZoom() или GetZoom()? В вопросе и примере кода регистр отличается.

То, что говорит @silverbtf, частично верно, я считаю (мне сложно тестировать на нетбуке, на котором я работаю). однако, установив gmap снова в литерал объекта (window.gmap = {...}), вы стираете любую существующую переменную gmap, прикрепленную к объекту window.

Вы могли бы переписать свой код так:

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

Таким образом, вы присоединяете новый метод к уже существующему gmap вместо того, чтобы уничтожать его.

0 голосов
/ 19 января 2011

Вместо zoom = gmap.getZoom(); должно быть zoom = this.getZoom();.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...