javascript – 如何使用SetInterval函数和’if’使div弹出?

我有一个鼹鼠游戏的脚本,但我似乎无法通过使用随机数生成器使我的div弹出.这是我的代码:(顺便说一句,这是我做过的第一场比赛,所以这可能是一个愚蠢的问题:))

        //minigame
setInterval(function() {
var randomnumber = 1 + Math.floor(Math.random() * 10);  
            if (randomnumber = "1") {
                $('#mole1').show();
                };
            if (randomnumber = '2') {
                $('#mole1').show();
                };
            if (randomnumber = '3') {
                $('#mole1').show().delay(300).hide();
                };
            if (randomnumber = '4') {
                $('#mole1').show().delay(300).hide();
                };
            if (randomnumber = '5') {
                $('#mole1').show().delay(300).hide();
                };
            if (randomnumber = '6') {
                $('#mole1').show().delay(300).hide();
                };  
}, 200);

和我的html相关:

            <div id="minigameblockholder">
        <div class='moles' id="mole1"> </div>
        <div class='moles' id="mole2"> </div>
        <div class='moles' id="mole3"> </div>
        <div class='moles' id="mole4"> </div>
        <div class='moles' id="mole5"> </div>
        <div class='moles' id="mole6"> </div>

        <div id="scorebord"> </div>

    </div>

我还没有开始在我的记分牌上工作,所以不要其他纠正.
谢谢你,
碧玉

最佳答案
编辑

我不知道你是否编辑了你的答案,但我可以看到一些阻止它工作的东西.

你的if语句不起作用.您正在使用赋值运算符(“=”),这是您分配变量的方式.

var x = 2; (为变量x赋值2)

您需要在比较中使用“==”(等于)运算符.

if(randomnumber == 2)(如果randomnumber等于2)

Orignal答案

继我的评论后,我无法从你的代码碎片中看到它为什么不起作用.但是,您可以尝试以下内容;

setInterval(function(){
    var randomnumber = 1 + Math.floor(Math.random() * 10);

    $('#mole1').html(randomnumber);

    var mole = $('#mole' + randomnumber);

    if(mole != undefined){
        $('.moles').hide();
        mole.show();
    }
}, 2000)

这会创建一个随机数,将其附加到id“mole”(例如:mole 2)并检查它是否已定义(存在).如果是,它隐藏所有其他痣并显示所选的痣(在我们的例子中,2).这也将删除所有if语句,并允许您增加或减少摩尔数,而无需为它们创建额外的检查.

你可以看到它在这里工作https://jsfiddle.net/ezs00xw0/

注意:忽略额外的html和css,这是出于调试目的.

转载注明原文:javascript – 如何使用SetInterval函数和’if’使div弹出? - 代码日志