Je suis nouveau à Mootools et API V3 Google Maps et je suis face au problème suivant:propriétés de classe Mootools se undefined lorsque vous appelez événement Google carte auditeur
Mon but est de créer une classe de base pour représenter un bouton générique et sous-classes avec différents gestionnaires d'événements "click" pour ajouter des marqueurs, des polygones et des polylignes. Par conséquent, en utilisant mootools, je crée une classe de base avec les propriétés d'apparence de base et trois sous-classes avec différents gestionnaires d'événements "click". Les boutons semblent ok mais quand je clique sur un, il est dit que la propriété n'est pas définie. Est-ce un problème de portée? Comment puis-je réformer le code pour appeler la bonne méthode?
var GButton = new Class({
initialize: function(divObj, mapObj){
this.div = divObj;
this.map = mapObj;
this.controlUI = document.createElement('DIV');
this.controlUI.style.backgroundColor = 'white';
this.controlUI.style.borderStyle = 'solid';
this.div.appendChild(this.controlUI);
this.controlText = document.createElement('DIV');
this.controlText.style.fontFamily = 'Arial,sans-serif';
this.controlUI.appendChild(this.controlText);
}
});
//mootools 1.1
var GButtonMarker = GButton.extend({
initialize: function(divObj, mapObj){
this.parent(divObj, mapObj);
this.controlUI.title = 'Click to add new marker';
this.controlText.innerHTML = 'New Marker';
google.maps.event.addDomListener(this.controlUI, 'click', this.updateControl);
},
//just to represent that it is pressed
updateControl: function(){
this.controlUI.style.backgroundColor = 'LightGrey'; //problem here! this.controlUI UNDEFINED! (while it is defined of course...)
this.controlText.style.fontWeight = 'bold';
}
});
avez-vous essayé «clic», this.updateControl.bind (this) '? –
Ceci était facile à résoudre en V2 avec le 3ème paramètre 'GEvent.bindDom'. On dirait qu'ils ont supprimé ce paramètre de 'addDomListener' de V3. C'est drôle, mais ils l'ont laissé dans 'google.maps.event.bind' qui est pour les événements non-DOM. –
Je viens de le faire et ça fonctionne, merci. – vkolias