我有以下点击功能。我正在寻找一种方法,以便在它完成时,它将重置,并准备再次运行。我该怎么做?
$('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 show是我的脚本所做的,但正如你所看到的,它一直在说失败。无论你打什么图像。
答案 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");
}