【问题标题】:Generating same random number onclick单击时生成相同的随机数
【发布时间】:2013-06-28 09:15:21
【问题描述】:

对不起,如果这是一个重复的问题,搜索了高和低,找不到答案。

我试图在每次点击时生成一个新的随机数。到目前为止,只有第一个数字是随机的,并且在随后的每次点击中都没有任何反应。我认为 getRandomNumber 函数只评估一次,这就是为什么我得到相同的数字。

$(document).ready(function(){    
    var index = 0; 

    function getRandomNumber(){
        shuffle = function(o){
            for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
                return o;
        };

        var randorder = shuffle([0,1,2,3,4]);

        return randorder[index++];
    }

    $("#button2").click(function(){
        var gameq = new Array();
        gameq[0] = "Question 1 ?";
        gameq[1] = "Question 2 ?";
        gameq[2] = "Question 3 ?";
        gameq[3] = "Question 4 ?";
        gameq[4] = "Question 5 ?";

        $("#question").replaceWith('<h5>' + gameq[getRandomNumber()] + '</h5>')
    });
});

【问题讨论】:

    标签: javascript jquery random onclick onclicklistener


    【解决方案1】:

    你只是在第一次杀死你的#question 元素。尝试像这样更改最后一行:

    $("#question").replaceWith('<h5 id="question">' + gameq[getRandomNumber()] + '</h5>');
    

    或者它对你也有好处:

    $("#question").html('<h5>' + gameq[getRandomNumber()] + '</h5>');
    

    【讨论】:

    • 我会说这样做可能会更好:$("#question").html(gameq[getRandomNumber()]);
    • 我假设您的意思是 id="question" 而不是 id="#question"
    • @musefan 当然,但我们不知道在 OP 的情况下是否可以接受
    • @Puuskis 100% ,我的手跑得太快了
    • 哇,我怎么错过了。我选择了第二个选项,因为它看起来更干净一些。谢谢
    猜你喜欢
    • 2017-07-30
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多