Ich habe die Antworten in diesem Blog und andere ohne Auflösung durchsucht. Hilfe wird sehr geschätzt.onmousemove Event Not Firing
Ich habe ein onmousemove-Ereignis, das das erste Element in der Liste der Ereignisse zum Auslösen ausführt, aber das zweite Element nicht ausführt. document.getElementById("map_image_africa").onmousemove = maps.redraw; learnPanel.redraw;
Das Problem scheint nicht browserspezifisch zu sein; Es tritt in Chrome und Safari auf. Habe Firefox noch nicht probiert.
In Chrome kann ich die Konsole des Browsers hochziehen und learnPanel.redraw();
ausführen, und es funktioniert wie erwartet. Wenn ich eine Alert-Anweisung zwischen die Anweisungen maps.redraw und learnPanel.redraw im Ereignis onmouseover einfüge, wird die Warnung wie erwartet ausgeführt.
das learnPanel Objekt wird unter
mit dem Code erstellt 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();
Vielen Dank im Voraus für die Hilfe!
Dank - es das Problem behoben:
Die obige
onmousemove
Zuordnung kann (und sollte) als solche neu geschrieben werden. Ich habe auch Ihren Tipp zu den EventListeners genommen. Vielen Dank! – LetsPlayGlobalGamesGut zu wissen, dass es geholfen hat, danke für die Rückmeldung! –