2014-04-04 3 views
0

У меня есть событие, которое я зарегистрироваться на нажатие кнопки:Невозможно удалить прослушиватель событий в GoogleMaps

var paths=[]; 
var mapPolylineListener=e.addEventToTarget(map,'click',function(event){ 
    //keep adding points to the array 
    //draw the polyline if there are two points 
    //extend the polyline with this point once it has been drawn 
} 

e.addEventToTargetOnce(map,'rightclick',function(event){ 
    console.log('Polyline right click event called'); 
    if(typeof mapPolylineListener!='undefined') 
    { 
     console.log('stop drawing the map listener'); 
      //do stuff here like encoding to geometry and making AJAX calls 
     paths=[]; 
     mapPolylineListener=void 0; 
    }    

Модуль событий определяет функции:

addEventToTarget:function(onWhat,eventType,fn) 
    { 
    gmaps.event.addListener(onWhat,eventType,fn); 
    } 

    addEventToTargetOnce:function(onWhat,eventType,fn) 
    { 
    gmaps.event.addListenerOnce(onWhat,eventType,fn); 
    } 

Я использую requirejs модули и я модули для определения функциональных возможностей:

e=gmaps.event; 
gmaps=window.google.maps; 

в моей консоли, она показывает:

Polyline right click event called 

и проверка всегда кажется, что не в состоянии

if(typeof mapPolylineListener!='undefined') 

Итак, я пытался делать !=null и if(mapPolylineListener) чек оба из которых не удалось.

Как я могу исправить это, чтобы код внутри блока if выполнялся?

ответ

1

Я не знаю, как requirejs модуль работает ... Потому что ничего не возвращается из addEventToTarget Я хотел бы изменить следующим образом:

addEventToTarget:function(onWhat,eventType,fn) 
{ 
    var handle = gmaps.event.addListener(onWhat,eventType,fn); 
    return handle; 
} 

, а затем вызвать removeListener(mapPolylineListener) в e.addEventToTargetOnce(map,'rightclick',function(event){...

Смежные вопросы