Одной из распространенных проблем при работе с JavaScript является ситуация, когда event listener, назначенный на несколько элементов, срабатывает только на последней кнопке. Почему это происходит?
Описание проблемы может быть связано с тем, что event listener назначается в цикле, и на каждой итерации создается новая функция. Таким образом, когда событие происходит, вызывается последняя функция из цикла, и ничего не происходит при клике на другие элементы.
Для решения этой проблемы необходимо использовать замыкание. Замыкание позволяет сохранить доступ к переменным во время выполнения функции, даже если эта функция вызывается вне области видимости, в которой эти переменные были определены. В данном случае, необходимо замкнуть внутреннюю функцию внутри цикла, чтобы каждая функция имела доступ к переменным, зависящим от текущей итерации.