Обработчик события


#1

Ребята, помогите пожалуйста – необходимо в кнопке button сделать регистрацию двух обработчиков события click.
Подскажете с кодом?!


#2
Попробуйте этот вариант:
        <button id="mybutton">Щелкните меня!</button>
        <script>

        var b = document.getElementById("mybutton");
        b.onclick = function() {
        alert("Спасибо, что щелкнули на мне!");
        };

    b.addEventListener("click", function() {alert('Еще раз спасибо!')}, false);
    </script>

#3

Могли бы немного объяснить пожалуйста – буду признателен!


#4

Вызов метода addEventListener() со строкой «click» в первом аргументе никак не влияет на значение свойства onclick. Во фрагменте, приведенном выше, щелчок на кнопке приведет к выводу двух диалоговых окон alert(). Но важнее то, что метод addEventListener() можно вызвать несколько раз и зарегистрировать с его помощью несколько функций-обработчиков для одного и того же типа события в том же самом объекте. При появлении события в объекте будут вызваны все обработчики, зарегистрированные для этого типа события, в порядке их регистрации.
Многократный вызов метода addEventListener() для одного и того же объекта с теми же самыми аргументами не дает никакого эффекта - функция-обработчик регистрируется только один раз и повторные вызовы не влияют на порядок вызова обработчиков.
Парным к методу addEventListener() является метод removeEventListener(), который принимает те же три аргумента, но не добавляет, а удаляет функцию-обработчик из объекта. Это часто бывает удобно, когда необходимо зарегистрировать временный обработчик события, а затем удалить его в какой-то момент.


#5

А почему не сделать так

<button id="btn1">Test</button>

<script>
   var b = document.getElementById("btn1");
   b.addEventListener("click", function() {alert('Еще раз спасибо!')}, false);
   b.addEventListener("click", function() {alert('Еще раз спасибо!')}, false);
</script>

addEventListener как раз и нужен чтобы добавить несколько обработчиков на одно и то же событие


#6

Это не верное утверждение

Если вызвать функцию addEventListener() несколько раз для регистрации нескольких функций обработчиков одного типа события в одном объекте, то при возникновении события этого типа в данном объекте (или при всплывании к данному объекту, или при перехвате этого события данным объектом) будут вызваны все зарегистрированные вами функции.

Вот цитата из "Дэфида Флэнагана JavaScript. Подробное руководство"