Я хочу, чтобы функция прослушивания событий, isTwoCards, захватывала информацию от объекта, который ее вызывает. Этот код дает мне element.getAttribute не является функциейjavascript function Слушатель событий DOM с использованием «this»
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 ('click', isTwoCards);' then in 'isTwoCards()' do: 'cardsInPlay.push (this.getAttribute ('data-card'));' –
Вам не нужно передайте это как аргумент (который также не работает). Замените 'isTwoCards (this)' на 'isTwoCards' и' element.getAttribute ('data-card') 'с' this.getAttribute ('data-card') ' – evolutionxbox
' addEventListener ('click', isTwoCards (this)) '<--- Это вызывает функцию' isTwoCards', не добавляя ее в качестве слушателя. – evolutionxbox