Занятная задачка и занятные ошибки :) В первую оче
Занятная задачка и занятные ошибки :)
В первую очередь лучше, конечно, документацию сразу искать в том же MDN. Вот: https://developer.mozilla.org/ru/docs/Web/API/EventTarget/addEventListener (заодно прочитай и про removeEventListener(), его очень рекомендуется использовать).
-
document.addEventListener()Ты вызываешь метод addEventListener у элемента document. Таким образом слушателя ты добавляешь именно документу. В итоге, где бы ты ни кликнул в документ (который суть враппер для всего содержимого страницы), ты получишь вызов обработчика. -
document.addEventListener()можно вызывать несколько раз (как и на любом другом элементе). Если ты искал все кнопки и в цикле попытался навесить на каждую из них обработчик (а навесил каждый раз на документ), то столько раз и вызов произошел по клику. Еще раз уточню, что вызываяdocument.addEventListener(), ты добавляешь новый обработчик в массив обработчиков, а не перетираешь существующий. Выполни в консолиgetEventListeners(document), увидишь там все обработчики, в том числе и наclick. -
Это уже чуть другой момент, но тоже важный.
document.querySelector('elem-btn elem-btn--red to-basket ng-scope')— это поиск первого попавшегося элемента, не всех. Чтобы все найти и перечислить, надо юзать