如何使用 SetInterval 函数和 'if' 使 div 弹出?

How do is use the SetInterval function and the 'if' to make div's pop up?

我有一个 Whack a mole 游戏的脚本,但我似乎无法通过使用随机数生成器让我的 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; (将2赋值给变量x)

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

if(randomnumber == 2) (如果随机数等于2)

原答案

根据我的评论,我无法从您的代码片段中看出它为什么不起作用。但是,您可以尝试以下操作;

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,这是为了调试目的。