Задать вопрос
SecurityYourFingers
@SecurityYourFingers
I make other things, but i know that without your

Как сократить код?

Есть много кнопок, которые делают innerHTML. Как при добавлении новых кнопок сделать так, чтоб функцию для новой кнопки не писать?
function test() {
    $('#0').on("click",function () {
        $("#main__display").html(
            '<img src="'+collect[0]+'">'
        )
    });
    $('#1').on("click",function () {
        $("#main__display").html(
            '<img src="'+collect[1]+'">'
        )
    });
    $('#2').on("click",function () {
        $("#main__display").html(
            '<img src="'+collect[2]+'">'
        )
    });
    $('#3').on("click",function () {
        $("#main__display").html(
            '<img src="'+collect[3]+'">'
        )
    });
    $('#4').on("click",function () {
        $("#main__display").html(
            '<img src="'+collect[4]+'">'
        )
    });
    $('#5').on("click",function () {
        $("#main__display").html(
            '<img src="'+collect[5]+'">'
        )
    });
}
  • Вопрос задан
  • 196 просмотров
Подписаться 2 Простой 1 комментарий
Ответ пользователя Филипп Гапоненко К ответам на вопрос (3)
filgaponenko
@filgaponenko
frontend developer
Тут можно не навешивать обработчик на каждый из элементов, а использовать делегирование событий — вместо множества обработчиков навесить один обработчик на родителя.

Это позволит не навешивать обработчики заново при добавлении новых элементов и не заботиться об удалении обработчиков из памяти при удалении элементов.
Ответ написан
Комментировать