事件侦听器无法始终如一地工作 Javascript
Event listener not working consistently Javascript
我有一个基于网络的测验,它加载了一个新问题,有 4 个选项和它们旁边各自的单选按钮。问题是我在 "next" 按钮上有一个事件侦听器,它会触发一个新问题并加载选项,但问题不会加载。我相信这是因为我每次都重置计步器。还有一点奇怪的是,当事件侦听器触发时,我将它输出到控制台,有时当我按下一个时它不会触发,而其他时候它会触发。我找不到模式。
如果您想查看所有相关代码,我已将相关代码与 link 一起包含在 JSFiddle 中。先感谢您。 http://jsfiddle.net/d0u6cz7o/
function Quiz() {
this.step = 0;
this.questionSwap = function () {
document.getElementById('question').innerHTML = allQuestions[this.step].question;
document.getElementById('answer0').innerHTML = allQuestions[this.step].choices[0];
document.getElementById('answer1').innerHTML = allQuestions[this.step].choices[1];
document.getElementById('answer2').innerHTML = allQuestions[this.step].choices[2];
document.getElementById('answer3').innerHTML = allQuestions[this.step].choices[3];
};
var quiz = new Quiz();
quiz.questionSwap();
window.addEventListener('load', function() {
document.getElementById("next").addEventListener("click", function () {
console.log("Here");
quiz.questionSwap();
quiz.step++;
console.log("current question is " + quiz.step);
})
});
将提交更改为按钮,删除侦听器并更改旋转顺序:
<input id="next" type="button" value="Next!">
document.getElementById("next").addEventListener("click", function ()
{
quiz.step++;
quiz.questionSwap();
console.log("current question is " + quiz.step);
})
我有一个基于网络的测验,它加载了一个新问题,有 4 个选项和它们旁边各自的单选按钮。问题是我在 "next" 按钮上有一个事件侦听器,它会触发一个新问题并加载选项,但问题不会加载。我相信这是因为我每次都重置计步器。还有一点奇怪的是,当事件侦听器触发时,我将它输出到控制台,有时当我按下一个时它不会触发,而其他时候它会触发。我找不到模式。
如果您想查看所有相关代码,我已将相关代码与 link 一起包含在 JSFiddle 中。先感谢您。 http://jsfiddle.net/d0u6cz7o/
function Quiz() {
this.step = 0;
this.questionSwap = function () {
document.getElementById('question').innerHTML = allQuestions[this.step].question;
document.getElementById('answer0').innerHTML = allQuestions[this.step].choices[0];
document.getElementById('answer1').innerHTML = allQuestions[this.step].choices[1];
document.getElementById('answer2').innerHTML = allQuestions[this.step].choices[2];
document.getElementById('answer3').innerHTML = allQuestions[this.step].choices[3];
};
var quiz = new Quiz();
quiz.questionSwap();
window.addEventListener('load', function() {
document.getElementById("next").addEventListener("click", function () {
console.log("Here");
quiz.questionSwap();
quiz.step++;
console.log("current question is " + quiz.step);
})
});
将提交更改为按钮,删除侦听器并更改旋转顺序:
<input id="next" type="button" value="Next!">
document.getElementById("next").addEventListener("click", function ()
{
quiz.step++;
quiz.questionSwap();
console.log("current question is " + quiz.step);
})