Ich möchte meine Event-Listener-Funktion, isTwoCards, um Informationen aus dem Objekt zu holen, die es aufruft. Dieser Code gibt mir element.getAttribute ist keine FunktionJavaScript-Funktion DOM-Event-Listener mit "dieser"
var gameboard = document.getElementById('game-board');
var cards = ['queen', 'queen', 'king', 'king'];
var cardsInPlay = [];
var isTwoCards = function(element){
cardsInPlay.push(element.getAttribute('data-card'));
if (cardsInPlay.length === 2){
isMatch(cardsInPlay);
cardsInPlay = [];
}
}
var createBoard = function(){
for (var i = 0; i < cards.length; i++){
cardDiv = document.createElement('div');
cardDiv.setAttribute('class', 'card');
cardDiv.setAttribute('data-card', cards[i]);
cardDiv.setAttribute('id', i);
cardDiv.addEventListener('click', isTwoCards(this));
gameboard.appendChild(cardDiv);
}
}
createBoard()
'cardDiv.addEventListener ('klicken', isTwoCards);' dann in 'isTwoCards()' tun: 'cardsInPlay.push (this.getAttribute ('Datenkarte'));' –
Sie müssen nicht Übergeben Sie dies als Argument (was auch nicht funktioniert). Ersetze 'isTwoCards (this) 'mit' isTwoCards' und 'element.getAttribute (' data-card ')' mit 'this.getAttribute (' data-card ')' – evolutionxbox
'addEventListener (' click ', isTwoCards (this)) '<--- Dies ruft die' isTwoCards'-Funktion auf und fügt sie nicht als Listener hinzu. – evolutionxbox