@Omniverse

Как задать обработчик события в скрипте?

Здравствуйте.

Надо, чтобы при нажатии на кнопку запускалась какая-нибудь функция. Это можно сделать так:
function run() {
  alert("hello");
}

<button onclick="run()">Run</button>

Но как сделать то же самое, но без добавления атрибута onclick внутри тега button?
То есть назначать событие внутри скрипта.
Я пробовал так, но не получается:
function run() {
  alert("hi");
}
document.getElementsByTagName("button").onclick = run();
  • Вопрос задан
  • 178 просмотров
Решения вопроса 3
Комментаторы сверху немного странные вещи предлагают.
На самом деле всё намного проще:
document.querySelector("button").onclick = run;

Когда вы указываете оператор () - вы вызываете функцию а её результат попадает в onclick, вам же нужно чтобы в onclick попала ссылка на функцию.
Ответ написан
pashted
@pashted
тыжпрограммист
крч, это для первой попавшейся кнопки
document.getElementsByTagName("button")[0].onclick = function() {
    run();
}


а это для конкретной кнопки с id
document.getElementById("my_button").onclick = function() {
    run();
}
Ответ написан
Комментировать
lazalu68
@lazalu68
Salmon
document.querySelector("button").addEventListener('click', run);

function run() {
  alert("hi");
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
добавлю к ответу выше, что если надо все кнопычи обработать, то придется циклом пройтись по массиву, который получается при получении элемента по классу, имени тега и тд.
с ID такого нет
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час