Tôi đã tìm kiếm thông qua các câu trả lời được cung cấp trong blog này và các câu trả lời khác mà không có bất kỳ giải pháp nào. Trợ giúp được đánh giá cao.onmousemove Event Not Firing
Tôi có sự kiện onmousemove đang thực thi mục đầu tiên trong danh sách các sự kiện sẽ kích hoạt nhưng sẽ không thực thi mục thứ hai. document.getElementById("map_image_africa").onmousemove = maps.redraw; learnPanel.redraw;
Vấn đề dường như không phải là trình duyệt cụ thể; nó xảy ra trong Chrome và Safari. Chưa thử firefox.
Trong Chrome, tôi có thể kéo bảng điều khiển của trình duyệt và thực thi learnPanel.redraw();
và hoạt động như mong đợi. Ngoài ra, nếu tôi đặt một tuyên bố cảnh báo giữa các câu lệnh maps.redraw và learnPanel.redraw trong sự kiện onmouseover, cảnh báo sẽ thực thi như mong đợi.
đối tượng learnPanel được tạo ra với mã dưới đây
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();
Cảm ơn trước sự giúp đỡ!
Cảm ơn cho câu trả lời rõ ràng - nó giải quyết vấn đề này. Tôi cũng đã đưa ra lời khuyên của bạn về eventListeners. Cảm ơn! – LetsPlayGlobalGames
Vui mừng khi biết điều đó đã giúp, cảm ơn bạn đã báo cáo lại! –