Установить событие нажатия кнопки для функции - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть кнопка, которой я хотел бы назначить событие нажатия, чтобы при нажатии на кнопку она запускала функцию.

<button id="buttonid"></button>

Когда я запускаюСценарий под ним запустит функцию, но событие нажатия не будет добавлено к кнопке.Поэтому я не могу использовать кнопку для запуска функции.

function myFunction() {
  alert("Hello, world!");
}

var element = document.getElementById("buttonid");
element.onclick = myFunction;

Я считаю, что моя цель будет выглядеть следующим образом:

<button id="buttonid" onClick="myFunction()">

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Ваш исходный код должен работать при условии, что он запускается после того, как DOM готов, чтобы document.getElementById("buttonid"); действительно нашел элемент.

Проверьте консоль на наличие ошибок, которые могут указывать на то, что element равно undefined.

Чтобы убедиться, переместите тег script, который включает в себя ваш код внизу ( прямо перед закрытием тега body )

После того, как вышеЛучше не устанавливать атрибут onclick, а использовать метод addEventListener.

<body>

  <button id="buttonid">clickme</button>

  <script>
    function myFunction() {
      alert("Hello, world!");
    }

    var element = document.getElementById("buttonid");
    element.addEventListener('click', myFunction);
  </script>
</body>
0 голосов
/ 17 декабря 2018

Попробуйте это:

function myFunction(e) {
  alert("Hello, world!");
  console.log(e);
}
<button id="buttonid" onclick="myFunction(event)">Click me</button>
Если вы хотите добавить обработчик событий из js-кода, тогда этот код должен быть включен.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...