在事件发生后将分数存储在变量中

时间:2014-06-30 13:22:25

标签: javascript events onclick

理想的结果:在用户选择答案后,我想在以下位置修改score变量: score += 1如果答案是正确的,如果答案是错误的话,要么根本不改变 当前结果:对于用户正在制作的每个选项,分数保持不变:0

首先,我存储将在question_paragraph中更改的段落以及用户在next_button中点击的按钮。另外,我在value中存储了值(我在每个输入上使用数组符号 - 0首先,1秒等)放置了属性user_answer

var question_paragraph = document.getElementById('question');
var next_button = document.getElementById('next');
var i = 0;
var user_answer = getCheckedValue(document.getElementsByName('choice'));
var y = 0;
var score = 0;

如果存在,getCheckedValue函数将返回我输入的value属性。

function getCheckedValue(radioObj) {
    var radioLength = radioObj.length;
    for(var z = 0; z < radioLength; z++) {
        if(radioObj[z].checked) {
            return radioObj[z].value;
        }
    }
    return "Error!";
}

以下是问题。除隔离区域外,该功能正常。 allQuestion是我的对象,我存储了问题,可能的答案和正确答案,correctAnswer(我不在此处将其包括在内,但工作正常)。如果y符合allQuestions[y].correctAnswer的值,我会使用条件语句来增加user_choice和代码&gt;得分。

function changeQuestion() {

    //PROBLEM
    if(allQuestions[y].correctAnswer == user_answer){
    score += 1;
    y++;
    } else{y++;}  
    //PROBLEM



    i = (i < allQuestions.length) ? (i + 1) : 0;
    if (i == allQuestions.length) {
        i = 0;
        return question_paragraph.replaceChild(document.createTextNode(allQuestions[0].question), question_paragraph.firstChild);
    }
    var newNode = document.createTextNode(allQuestions[i].question);
    console.log(score);
    return question_paragraph.replaceChild(newNode, question_paragraph.firstChild);
}

Finnaly,我调用了addHandler函数。

function addHandler(name, type, handler){
    if (name.addEventListener){
        name.addEventListener(type, handler, false);
    } else if (name.attachEvent){
        name.attachEvent("on" + type, handler);
    } else {
        name["on" + type] = handler;
    }
}

addHandler(next_button, 'click', changeQuestion);

1 个答案:

答案 0 :(得分:0)

嗯,到目前为止,有些事情似乎很有趣。首先,我没有看到变量y的任何初始化。如果y是保留其值的全局变量,则可能是您的对象存在问题:allQuestions {}。你能提供构建对象allQuestions {}的代码吗?没有它,我不认为我可以完全回答这个问题,但我相信这就是你的问题所在。

哎呀,这应该是评论,而不是答案,对不起......