Может кто-нибудь сказать мне, что удерживает этот код от правильного рендеринга? Я чувствую себя так близко - PullRequest
0 голосов
/ 25 апреля 2020
  1. Браузер сообщает, что проблема может быть в ie с checkForMatch () и flipCard
  2. Чтобы указать c, он говорит, что cardId не определен.

    const cards = [
        {
            rank: "queen",
            suite: "hearts",
            cardImage: "images/queen-of-hearts.png"
        },
        {
            rank: "queen",
            suite: "diamonds",
            cardImage: "images/queen-of-diamonds.png"
        },
        {
            rank: "king",
            suite: "hearts",
            cardImage: "images/king-of-hearts.png"
        },
        {
            rank: "king",
            suite: "diamonds",
            cardImage: "images/king-of-diamonds.png"
        }
    ];
    
    
    let cardsInPlay = [];
    
    function checkForMatch() {
        this.setAttribute('src', cards[cardId].cardImage);
        if (cardsInPlay.length === 2) {
            if (cardsInPlay[0] === cardsInPlay[1]) {
                console.log("You found a match!");
            } else {
                console.log("Sorry, try again.");
            }
        }
    }
    
    function flipCard() {
        const cardId = this.getAttribute('data-id');
        console.log("User flipped " + cards[cardId].rank);
        console.log(cards[cardId].cardImage);
        console.log(cards[cardId].suite);
        cardsInPlay.push(cards[cardId].rank);
        checkForMatch();
    }
    
    
    function createBoard() {
        for (let i = 0; i < cards.length; i++) {
            let cardElement = document.createElement('img');
            cardElement.setAttribute('src', 'images/back.png');
            cardElement.setAttribute('data-id', i);
            cardElement.addEventListener('click', flipCard);
            document.getElementById('game-board').appendChild(cardElement);
        }
    }
    
    createBoard();
    

1 Ответ

0 голосов
/ 25 апреля 2020

Вам необходимо передать переменную cardId в качестве параметра из функции flipCard в функцию checkForMatch.

Так что в конце функции flipCard вам нужно сделать:

checkForMatch(cardId);

И в объявлении функции checkForMatch (справа вверху функции) вам нужно сделать:

function checkForMatch(cardId) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...