我正在尝试制作一种测验脚本。 它正在加载问题并保持分数,但“点击”标签似乎随每个新问题添加。而不是被改变。这导致奇怪的计数行为,这使我的脚本无法使用。有没有我可以“重置”点击功能?我已经尝试过“覆盖”它们,但这似乎不起作用。
var vragenArray = ["zero","Bla bla bla?","Boem Boem Boem?","Boing Boing Boing?","Floep Floep Floep?"];
var antA_Array = ["zero","antwoord1_a","antwoord2_a","antwoord3_a","antwoord4_a"];
var antB_Array = ["zero","antwoord1_b","antwoord2_b","antwoord3_b","antwoord4_b"];
var antC_Array = ["zero","antwoord1_c","antwoord2_c","antwoord3_c","antwoord4_c"];
var antD_Array = ["zero","antwoord1_d","antwoord2_d","antwoord3_d","antwoord4_d"];
var juistArray = ["zero","B","C","B","A"];
var aantalVragen = 21;
var counterVragen = 0;
var score = 0;
function laadVraag(){
console.log("laadVraag geladen");
counterVragen++;
$("#vraagNummer").text(counterVragen);
$("#vraag").text(vragenArray[counterVragen]);
$("#antA").text(antA_Array[counterVragen]);
$("#antB").text(antB_Array[counterVragen]);
$("#antC").text(antC_Array[counterVragen]);
$("#antD").text(antD_Array[counterVragen]);
$("#score").text(score);
$("#correct").text(juistArray[counterVragen]);
$("#antA_click").click(function(){ laadVraag(); });
$("#antB_click").click(function(){ laadVraag(); });
$("#antC_click").click(function(){ laadVraag(); });
$("#antD_click").click(function(){ laadVraag(); });
juisteAntwoord(juistArray[counterVragen]);
};
function juisteAntwoord(antwoord){
console.log("juisteVraag geladen");
$("#antB_click").click(function(){
score++;
laadVraag();
});
};
$(document).ready(function() {
laadVraag();
});
这是一个包含当前脚本的jsFiddle。 http://jsfiddle.net/D7MMa/1/
希望有人可以帮助我! :)
答案 0 :(得分:2)
答案 1 :(得分:1)
我认为类似的问题已经回答here,基本上他说的是你可以调用unbind()来删除所有点击事件
$('#elemendId').unbind('click');
而且API已经更新,.bind()/。unbind()仍然只能用于向后兼容,并且您应该使用off / on函数,如此
$('#elemendId').click(function() { return false; }); // Adds another click event
$('#elemendId').off('click');
$('#elemendId').on('click.mynamespace', function() { /* Do stuff */ });
$('#elemendId').off('click.mynamespace');
您应该阅读上一个答案中的帖子,因为他会更详细地解释这一点。 >取自上述帖子的例子。