重置jquery .click函数的调用

Reset jquery .click functions on call

本文关键字:调用 函数 click jquery 重置      更新时间:2023-09-26

我想做一个测验脚本。它正在加载问题并记录分数,但"点击"标签似乎是随着每个新问题而添加的。而不是被改变。这导致了奇怪的计数行为,使我的脚本无法使用。是否有某种方式,我可以"重置"点击功能?我已经试过"覆盖"它们,但似乎不起作用。

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/

希望有人能帮助我!:)

您可以使用.off()

描述:删除一个事件处理程序。

<

代码/em>

$(selector).off('click').on('click', function(){
    //Your Code
});
更新小提琴

我想这里有一个类似的问题,基本上他说的是你可以调用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');

你应该阅读之前的回答,因为他更详细地解释了这一点。

编辑:你可以在这里使用。unbind('click')方法找到Fiddle这里使用off()方法