Почему возникает ошибка с toggle?
Вложений: 1
Здравствуйте!
Делаю учебное задание(приложил архив). При клике на любую карточку, отрисовываемую в index.html, в консоли возникает ошибка при вызове метода toggle, хотя видно, что переменная card, к которой применяется .classList.toggle() - это dom-объект(см. картинки в архиве) Кто может сказать, почему? |
У тебя в аргументом card в функцию приходит не dom элемент li, а инстанс класса Card у которого есть свойство card в котором лежит dom элемент li, о чём тебе консоль и говорит.
Т.е. не card.classList.toggle( ... ) а card.card.classList.toggle( ... ). (Или использовать деструктуризацию на входе, если остальное из инстанса Card не нужно: function({card}){ card.classList.toggle( ... ) }) |
let card = new Card(ul, arr[i], function(card){ // Здесь можно прописать логику игры. card.classList.toggle('hidden'); card - объект, созданный конструктором Card. Это не элемент html. Элемент внутри, в свойстве card. Надо card.card.classList.toggle('hidden'); |
Здравствуйте!
Спасибо. Получается тот card, который стоит после let передается сразу же в function()? |
Тот или не тот - неизвестно*, из фактов только то, что в callback приходит инстанс класса Card. Глядя на код никак нельзя гарантировать, что он тот же самый. Но если следовать логике, то скорее всего тот же.
Сразу или не сразу - неизвестно*, из фактов только то, что callback когда-то таки вызывается. Глядя на код никак нельзя определить время вызова. Но если следовать логике, то раз существует callback - он вызывается скорее всего не сразу, а потом, после выполнения какого-то внутреннего асинхронного действия. * Если код самописный - надо смотреть по коду, если нет - в документации. |
Часовой пояс GMT +3, время: 19:16. |