重置我的点击功能

时间:2016-02-22 11:50:31

标签: javascript jquery

我有以下点击功能。我正在寻找一种方法,以便在它完成时,它将重置,并准备再次运行。我该怎么做?

$('body').on('click', '#ConfirmBet', function () {
    function randomImg() {
        var imgs = $('.CoinImages');
        var randomOne = Math.floor(imgs.length * Math.random());
        $('#winner').fadeIn().attr('src', $(imgs[randomOne]).attr('src'));
        $('#winner').addClass("WinImage");
        if ($('#winner').attr('src') === $('.selected').attr('src')) {
            alert('You Win!');
        } else {
            alert('You Lose!');
        }
    }
    var counter = 5;
    var c = setInterval(function () {
        if (counter > 0) {
            counter--;
            $('#counter').html(counter);
            $("#BetInput").val("");
            $("#BetInput").prop("readonly", false);
            $("#tCoin").removeClass("selected");
            $("#ctCoin").removeClass("selected");
            $(".CustomTextT").html("");
            $(".CustomTextCT").html("");
            $("#winner").removeClass("hidden");
        } else {
            clearInterval(c);
            randomImg();
        }
    }, 1000);
});

Codepen

这个codepen show是我的脚本所做的,但正如你所看到的,它一直在说失败。无论你打什么图像。

1 个答案:

答案 0 :(得分:0)

setInterval处理函数中,您将删除selected案例中的counter > 0类。然后在randomImg中,您正在寻找具有selected类的元素,以确定选择了哪个图像。由于您已经删除了该类,因此检查始终失败。

我想你想重做这样的setInterval处理程序逻辑:

    if (counter > 0) {
        counter--;
        $('#counter').html(counter);
    } else {
        clearInterval(c);
        randomImg();
        $("#BetInput").val("");
        $("#BetInput").prop("readonly", false);
        $("#tCoin").removeClass("selected");
        $("#ctCoin").removeClass("selected");
        $(".CustomTextT").html("");
        $(".CustomTextCT").html("");
        $("#winner").removeClass("hidden");
    }