Ho cercato tra le risposte fornite in questo blog e altre senza alcuna risoluzione. L'aiuto è molto apprezzato.onmousemove Evento non attivato
Ho un evento onmousemove che sta eseguendo il primo elemento nell'elenco degli eventi da attivare ma non eseguirà il secondo. document.getElementById("map_image_africa").onmousemove = maps.redraw; learnPanel.redraw;
Il problema non sembra essere specifico del browser; si verifica in Chrome e Safari. Non ho ancora provato Firefox.
In Chrome, posso aprire la console del browser ed eseguire learnPanel.redraw();
e funziona come previsto. Inoltre, se inserisco un'istruzione di avviso tra le istruzioni maps.redraw e learnPanel.redraw nell'evento onmouseover, l'avviso verrà eseguito come previsto.
l'oggetto learnPanel viene creato con il codice qui sotto
LearnPanel.prototype = new Panel();
LearnPanel.prototype.constructor = LearnPanel;
function LearnPanel() {
}
LearnPanel.prototype.draw = function() {
var br_element = document.createElement("br");
/* country name */
if(this.isCountryNamesSelected === "yes") {
var temp_label;
temp_label = document.createElement("label");
temp_label.classList.add('quiz_question_heading_label');
temp_label.innerHTML = "Country: ";
this.flagColumnTab.appendChild(temp_label);
this.labelCountryName = document.createElement("label");
this.labelCountryName.id = "country_name";
this.labelCountryName.classList.add('quiz_question_label');
this.flagColumnTab.appendChild(this.labelCountryName);
this.flagColumnTab.appendChild(document.createElement("br"));
}
/* capital */
if(this.isCapitalNamesSelected === "yes") {
var temp_label;
temp_label = document.createElement("label");
temp_label.classList.add('quiz_question_heading_label');
temp_label.innerHTML = "Capital: ";
this.flagColumnTab.appendChild(temp_label);
this.labelCapitalName = document.createElement("label");
this.labelCapitalName.id = "capital";
this.labelCapitalName.classList.add('quiz_question_label');
this.flagColumnTab.appendChild(this.labelCapitalName);
this.flagColumnTab.appendChild(document.createElement("br"));
}
/* flag */
if(this.isCountryFlagsSelected === "yes") {
this.flagImage = document.createElement("img");
this.flagImage.id = "flag_image";
this.flagImage.src = "/images/flags/_flag.jpeg";
this.flagImage.alt = "flag logo";
this.flagColumnTab.appendChild(this.flagImage);
this.flagColumnTab.appendChild(document.createElement("br"));
this.flagColumnTab.appendChild(document.createElement("br"));
}
}
LearnPanel.prototype.redraw = function() {
alert('redrawing learnPanel');
/* country name */
if(learnPanel.isCountryNamesSelected === "yes") {
learnPanel.labelCountryName.innerHTML = maps.getCurrentDisplayCountryDown();
}
/* capital */
if(learnPanel.isCapitalNamesSelected === "yes") {
learnPanel.labelCapitalName.innerHTML = maps.getCurrentCountryCapitalDown();
}
/* flag */
if(learnPanel.isCountryFlagsSelected === "yes") {
learnPanel.flagImage.src = "/images/flags/" + maps.getCurrentFlagDown() + "_flag.jpeg";
learnPanel.flagImage.alt = "flag of " + maps.getCurrentFlagDown();
}
/* head of state */
/* famous landmark */
}
learnPanel = new LearnPanel();
Grazie in anticipo per l'aiuto!
Grazie per la risposta chiara - è risolto il problema. Ho anche preso il tuo consiglio sugli eventListeners. Grazie! – LetsPlayGlobalGames
Felice di sapere che ha aiutato, grazie per aver segnalato! –