Помогите разобраться с e.target [как управлять разными элементами одними и теми же контролами?]

Есть такой пример кода: https://repl.it/@Ambrance/loadImgv2
По нажатию на кнопку “Загрузить” загружаются картинки. При нажатии на одну из них появляется возможность управлять ею с помощью кнопок.
Проблема в том, что при переключении с одной картинки на другую они потом уже вместе начинают реагировать на кнопки.
Как сделать, чтобы пока я управляюсь с одной картинкой, остальные на кнопки никак не реагировали?

Заведи глобальную переменную currentImg, записывай в нее ссылку на узел выбранного изображения. А обработчики кликов по кнопкам управления будут обращаться к этой currentImg (и не забудь проверить что значение в переменной есть на случай когда ни одно изображение не выбрано).

Сейчас ошибка в том что при каждом вызове handle(img) создается обработчик, который продолжает жить, и работает с конкретным img, переданным в аргумент. Сколько раз вызвал handle(img) столько раз обработчики и создались. При этом конкретный img “впаян” эти обработчики.

1 лайк

Кажется получилось и работает. Но я ничего не проверяю. Остается какая-то ошибка, которую я не замечаю?

Понажимай на кнопки до того как первое изображение подгружено

Консоль молчит… Разве что мне только специально выводить туда currentImg.

Неожиданно для меня. Скорее всего я представляю себе не именно то что реализовано.

Ошибок нет - и порядок. Будут - заходи.

1 лайк

Спасибо)