2013-07-01 136 views
2

對不起,如果這是一個重複的問題,搜索高和低,並找不到答案。生成相同的隨機數onclick

我試圖在每次點擊時生成一個新的隨機數。到目前爲止,只有第一個數字是隨機的,隨後的每次點擊都不會發生。我認爲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>') 
    }); 
}); 

回答

5

您只需在第一時間終止您的#question元素。嘗試改變的最後一行是這樣的:

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

或者可能是它也將是對你有好處:

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

我會說這是可能更好地做到這一點:'$(「#問題」 ).html(gameq [getRandomNumber()]);' – musefan

+0

我當然認爲你的意思是'id =「question」'而不是'id =「#question」' – Puuskis

+0

@musefan,但是我們不知道它是在OP的情況下可以接受 – Cherniv