所以我正在創建紙牌遊戲Dominion的Javascript版本。將點擊元素父項傳遞給函數
我有這個函數需要一個數組來保存我用一些自定義對象創建的卡片對象。每個卡的一個對象。我創建了容納每張卡片(一個div)的容器,然後我創建一個圖片對象,然後用戶點擊一個按鈕來播放一張卡片(如果它是一張行動卡片)。
這是我開始有我的問題。我在按鈕上添加了onclick函數。我想傳遞卡片對象(所以我可以在播放它時將它發送到我的丟棄數組),並且我想將按鈕的父級(它應該是保存特定卡片的div)發送到我的playAction()函數(所以基本上我的onclick函數只是調用另一個函數)。我收到一個錯誤,說明PlayCard [i]未定義。我也試圖在沒有運氣的情況下在onclick函數之外定義它。
您可以查看我在這兒,一個真人版:http://people.rit.edu/lxl1500/Prog4/Project%202/project1.html
的Javascript:http://people.rit.edu/lxl1500/Prog4/Project%202/main-script.js
所以,你點擊+按鈕在卡上購買它,最終它會顯示出來你的手。單擊動作卡上的播放按鈕時發生該錯誤。
displayCard功能:
function displayHand(hand){
var parent = Array();
var container = Array();
var card = Array();
var playCard = Array();
for(var i=0; i < hand.length; i++){
container[i] = document.createElement('div');
container[i].setAttribute('class','singleHandCard');
var cardIndex = container[i].setAttribute('id', 'card'+i);
document.getElementById('game-hand').appendChild(container[i]);
//create each card in our hand
card[i] = new Image();
card[i].src = hand[i].image;
//create play card item
playCard[i] = new Image();
playCard[i].setAttribute('class', 'playbtn')
playCard[i].src = 'images/play-btn.png';
playCard[i].style.visibility = 'hidden';
if(hand[i].type == "action"){
playCard[i].style.visibility = 'visible';
}
container[i].appendChild(playCard[i]);
parent[i] = card[i].parentNode;
playCard[i].addEventListener('click', function() {
playAction(playCard[i],parent[i]);
}.bind(hand[i]), false);
container[i].appendChild(card[i]);
}
}
playAction功能:
function playAction(actionCard,parent){
discard.push(actionCard);
parent.innerHTML='';
}
任何幫助,將不勝感激。我一直在努力工作幾天,現在我完全被困住了。謝謝!
OH MY神!你是男人中的神,先生!非常感謝。對此,我真的非常感激。我瞭解問題所在,但我不確定如何解決問題。你剛剛救了我這麼頭痛。我終於可以繼續前進!再次感謝! – 2013-02-13 05:47:58