Вы можете иметь только один обработчик с on*
.
Но нет ограничений на количество обработчиков, которые вы можете прикрепить к одному и тому же элементу для одного и того же события при использовании модели регистрации события.
Кроме того, он помогает консолидировать все поведение в Javascript и не распространяться по всей базе кода.
Примечание: вы также можете прикреплять события, используя on * внутри вашего Javascript. Для решения этой проблемы была введена модель регистрации событий DOM. См. Этот пример для получения дополнительной информации:
// HTML
<p id="somePara" onclick="alert('First')">...</p>
// Javascript
var el = document.getElementById("somePara");
el.onclick = function() {
alert("Second");
};
el.onclick = function() {
alert("Third");
};
// when <p> is clicked, it alerts "Third", overwriting the first two handlers.
Вместо этого лучшим подходом является использование регистрации событий. Продолжая приведенный выше пример (это только для демонстрации и не кросс-браузер),
el.addEventListener("click", function() {
alert("Un");
});
el.addEventListener("click", function() {
alert("Dos");
});
// clicking on the <p> will now alert "Third", "Un", and "Dos".