2013-02-03 39 views
0

我有一個事件處理函數,它有6個參數,它們作爲類名輸入。當我觸發函數直接打印出所有六個參數時,觸發函數時隨機化類的事件處理函數

所以即時嘗試創建一個包含類的數組,但不工作。 控制檯日誌註冊數組正在調用內部的索引值......但屏幕上沒有魔法。 任何想法?

 function AddEvent(){ 
      var AddEvent = "add"; 
      var addClassArr= document.getElementsByClassName(AddEvent); 
      for(var i=0; i<addClassArr.length; i++){ 
       var addClass = addClassArr[i]; 
       addClass.addEventListener("click", addDiceEvent, true); 
      } 
      var diceArray = ["dice dice-side-one", 
      "dice dice-side-two", 
      "dice dice-side-three", 
      "dice dice-side-four", 
      "dice dice-side-five", 
      "dice dice-side-six", 
      "dice dice-side-six"]; 

function addDiceEvent() { 
      var sides = diceArray[2]; 

    } } 
     AddEvent(); 
+0

你有小提琴嗎? –

+0

@MarkDee將在一分鐘內創建一個。 – Dymond

回答

0

那麼我可以回答我的問題自:) 的問題是,我是創建事件主叫裏面的陣列。 沒有工作,但這個伎倆。

var 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", 
     "dice dice-side-six"]; 
     var rand = Array[Math.floor(Math.random() * Array.length)]; 

     function addDiceEvent() { 
     dicesides_func(rand); 
1

這將是更好的包裹功能,這樣的功能裏面:

function AddEvent(className) 
{ 
    var nodes = document.getElementsByClassName(className), 
    sides = ["dice dice-side-one", 
      "dice dice-side-two", 
      "dice dice-side-three", 
      "dice dice-side-four", 
      "dice dice-side-five", 
      "dice dice-side-six", 
      "dice dice-side-six"], 
    handleClick = function() { 
     var sides = sides[2]; 
    } 

    for (var i=0; i<addClassArr.length; i++) { 
     var addClass = addClassArr[i]; 
     addClass.addEventListener("click", handleClick, true); 
    } 
} 

要撥打:

AddEvent('add'); 

或者,你可以使用模塊模式來完成實現隱藏。

+0

你說得對,這看起來比我的解決方案更好。 謝謝 – Dymond

+0

@Dymond我的回答有問題嗎?我看到接受的答案從我的立場跳到你的... –