我认为我在循环功能方面犯了一些错误。我有一个测验,我有四个选择。每当我选择答案并点击“nästa”时,它将存储所选答案,但如果他们改变主意并想要取回所有选项,他们可以点击“visa alla alternativ”按钮。为了检查我是否做得对,我已经附加了已出现的问题。每次我点击“nästa”时,都会出现问题的数量。
例如。 1 2 3 4(我点了四次,出现了四个不同的问题)。
但是,如果我点击“visa alla alternativ”,那么这个号码就是这样的。 1 2 3 4 1 2 3 4.这取决于我点击“visa alla alternativ”的次数。
var answer = [];
var select;
$(".option").on("click", click_question);
function nästa() {
answer.push(select);
count_click();
$(".option").each(function() {
$(this).fadeTo("slow", 1);
$(this).on("click", click_question);
});
$(this).fadeTo("slow", 0.2);
$("#visa_alternativ").fadeTo("slow", 0.2);
$("#tillbaka_question").fadeTo("slow", 1);
clicks.length = 1;
}
function click_question() {
$(".option").each(function() {
$(this).fadeTo("slow", 0.1);
});
$(".option").off("click");
$(this).fadeTo("slow", 1);
$("#visa_alternativ").fadeTo("slow", 1);
$("#nästa").fadeTo("slow", 1);
$("#nästa").on("click", nästa);
select = $(this).text();
}
$("#visa_alternativ").on("click", function () {
$(".option").each(function() {
$(this).fadeTo("slow", 1);
});
$(".option").on("click", click_question);
$(this).fadeTo("slow", 0.2);
$("#nästa").fadeTo("slow", 0.2);
});
该函数以某种方式调用count_click();
,其中函数给我们一个随机问题。 count_click();
工作正常但如果我点击“Visa alla alternativ”,它会根据我点击“visa alla anlternativ”的次数来调用更多问题。之前我曾对each()
做错了,我在这里问了一个问题,但现在我遇到了类似的问题,但有点不同。我需要帮助并告诉我each()
函数我做错了什么?
编辑:
好吧,发现如果我把$(“#nästa”)打开(“点击”,nästa);在它正在工作的功能之外,但是当我把它放入函数中时,正如你在上面看到的那样?为什么?
答案 0 :(得分:0)
看起来你多次绑定click_question
函数(这意味着它会多次运行):
$(".option").on("click", click_question); // bound to each .option here
function nästa() {
answer.push(select);
count_click();
$(".option").each(function () {
$(this).fadeTo("slow", 1);
$(this).on("click", click_question); // bound again as .each iterates through them.
});
$(this).fadeTo("slow", 0.2);
$("#visa_alternativ").fadeTo("slow", 0.2);
$("#tillbaka_question").fadeTo("slow", 1);
clicks.length = 1;
}