Javascript 简单jquery测验-计数器

Javascript 简单jquery测验-计数器,javascript,jquery,Javascript,Jquery,这里有把小提琴- 我正试图从上面构建一个基本的客户端测试。我现在的问题是我不知道如何防止多次点击增加我的分数。如果有人在点击正确的答案后选择了错误的答案,那么我也需要扣除这个数字 我尝试了一些if语句,但似乎没有取得多大进展!任何建议都将不胜感激 不使用计数,只需跟踪包含数据正确=yes的选定答案 var score = 0; $('ul li').on('click', function () { $(this).siblings().removeClass('selected');

这里有把小提琴-

我正试图从上面构建一个基本的客户端测试。我现在的问题是我不知道如何防止多次点击增加我的分数。如果有人在点击正确的答案后选择了错误的答案,那么我也需要扣除这个数字


我尝试了一些if语句,但似乎没有取得多大进展!任何建议都将不胜感激

不使用计数,只需跟踪包含
数据正确=yes的选定答案

var score = 0;

$('ul li').on('click', function () {
    $(this).siblings().removeClass('selected');
    $(this).addClass('selected');
    var isCorrect = $(this).data('correct');
    if (isCorrect === 'yes') {
        score++;
    }
    console.log(score);
});
上述代码搜索选择了类
且数据属性为
correct=yes
的li标记


您可以按以下方式结束您的问题:

$('ul li').on('click', function () {
    $(this).siblings().removeClass('selected');
    $(this).addClass('selected');
    console.log($('ul .selected[data-correct="yes"]').length);
});
更新代码

var score = 0;

$('ul li').on('click', function () {
    if($(this).siblings().hasClass('selected')==false){
    $(this).siblings().removeClass('selected');
    $(this).addClass('selected');
    var isCorrect = $(this).data('correct');
    if (isCorrect === 'yes') {
        score++;
    }

}
 console.log(score);    
});


如果您想使用与您的方法类似的方法,您可以使用:

var score = 0;

$('ul li').on('click', function () {
    if($(this).siblings().hasClass('selected')==false && $(this).hasClass('selected')==false){
    $(this).siblings().removeClass('selected');
    $(this).addClass('selected');
    var isCorrect = $(this).data('correct');
    if (isCorrect === 'yes') {
        score++;
    }

}
 console.log(score);    
});

这太完美了,谢谢!如此优雅的解决方案。
var score = 0;
$('ul li').on('click', function () {
    $(this).siblings().removeClass('selected');
    $(this).addClass('selected');
    var isCorrect = $(this).data('correct');
    if (isCorrect === 'yes') {
        score++;
    } else {
        score--;
    }
    $(this).siblings().unbind();
    console.log(score);
});