pos_ilya
@pos_ilya
Cringe person

Почему не выполняется onclick?

Есть кнопка, на которую я вешаю onclick, проверяю через console.dir, что функция на него повешана, но по нажатию на кнопку ничего не происходит. Если скопировать содержимое функции в консоль браузера, то всё работает. Пробовал с function expression и обычной функцией — не помогло.
let buttons = new Map([
    ["select_all", document.createElement("button")],
    ["exclude_all", document.createElement("button")],
    ["exclude_upload_not_completed", document.createElement("button")],
    ["exclude_coupling", document.createElement("button")],
    ["exclude_not_active", document.createElement("button")],
]);

// ...

buttons.get("select_all").onclick = () => {
    document.getElementById("pes")
        .querySelectorAll("input[type=checkbox]")
        .forEach(checkbox => {
            checkbox.checked = true;
    });
};
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
pos_ilya
@pos_ilya Автор вопроса
Cringe person
Оказывается, нельзя вешать onclick на createElement, только на сам элемент в DOM.

Источник: https://qna.habr.com/q/1221060#clarification_1619342
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@historydev Куратор тега JavaScript
Острая аллергия на анимешников
buttons.forEach(btn => {
	btn.onclick = () => {
      document.getElementById("pes")
          .querySelectorAll("input[type=checkbox]")
          .forEach(checkbox => {
              checkbox.checked = true;
      });
  };
  document.body.append(btn);
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы