2013-02-09 31 views
0

我有一個帶滾動功能的骰子應用程序,滾動功能是假設滾動應用程序內的骰子,以及功能正在滾動它們,但它打印出所有切成一樣。像這樣的東西。 如果我有4個骰子值隨機類事件,將所有類更改爲相同的名稱

1-4-7-3,當我滾動他們,答案將是一個隨機nr讓說6,然後所有6個骰子輸出6-6-6-6。

小貼士?

function rollEvent(){ 
     var rollDices = "roll"; 
     var addClass= document.getElementsByClassName(rollDices); 
     addClass=addClass[addClass.length-1]; 
     addClass.addEventListener("click", rollDice, true); 
     var diceArray = Array=[ 
     "dice dice-side-one", 
     "dice dice-side-two", 
     "dice dice-side-three", 
     "dice dice-side-four", 
     "dice dice-side-five", 
     "dice dice-side-six"]; 
     function rollDice(e) { 
      var name = diceArray[Math.floor(Math.random() * diceArray.length)]; 
      var obj=e.target; 
      var elementToRemove = " dice-window-wrapper "; 
      while((" "+obj.className+" ").indexOf(elementToRemove)==-1){ 
       obj=obj.parentNode; 
      } 

      var allDiceInWindow=obj.getElementsByClassName("dice"); 


      for(var i = 0; i<allDiceInWindow.length; i++){ 

        allDiceInWindow[i].className = name; 

      } 



     } 
    } 
    rollEvent(); 

回答

1

您只需調用Math.random()方法一次,然後將結果應用到所有的骰子。試試這個爲你的rollDice方法:

function rollDice(e) { 
    var obj=e.target; 
    var elementToRemove = " dice-window-wrapper "; 
    while((" "+obj.className+" ").indexOf(elementToRemove)==-1){ 
     obj=obj.parentNode; 
    } 
    var allDiceInWindow=obj.getElementsByClassName("dice"); 

    for(var i = 0; i<allDiceInWindow.length; i++){ 
     // set the name individually for each die 
     var name = diceArray[Math.floor(Math.random() * diceArray.length)]; 
     allDiceInWindow[i].className = name; 
    } 
} 
+0

魔法:)謝謝 – Dymond 2013-02-09 11:29:29

相關問題