2014-06-28 52 views
0

我希望当用户单击“下一步”按钮移动到下一个问题时。这里的问题是当我点击按钮时,它只显示第一个问题。哪里有问题?我知道'返回'返回结果的功能,但下一次当我按下按钮,迭代器(我)不是我+ 1?将事件处理程序添加到数组

var changeQuestion = function() { 
    for (var i = 0; i < allQuestions.length; i++) { 
     var newNode = document.createTextNode(allQuestions[i].question); 
     return question_paragraph.replaceChild(newNode, question_paragraph.firstChild); 
    } 
}; 

EventUtil.addHandler(next_button, 'click', changeQuestion); 
+0

你能告诉我们'changeQuestion'的代码? – Arvind

+0

是的,我编辑了这篇文章。 – Bacchus

回答

1

试试这个:

var i = -1; 
function changeQuestion() { 
    i = (i < allQuestions.length) ? (i+1) : -1; 
    var newNode = document.createTextNode(allQuestions[i].question); 

    return question_paragraph.replaceChild(newNode, question_paragraph.firstChild); 
} 
EventUtil.addHandler(next_button, 'click', changeQuestion); 
+0

由于执行上下文(var i在全局范围中声明),这是否正常工作? – Bacchus

+0

这就是其中一个原因。另一个是我不使用我为每个请求增加我。 (另外,如果到达数组的末尾,则它将回到第一个元素) – Tanatos

+0

它似乎没有返回到第一个元素 – Bacchus

相关问题