Почему не рекомендуется использовать onclicks в ваших обработчиках событий HTML.Use в вашем файле JS - PullRequest
2 голосов
/ 17 мая 2010

Почему рекомендуется не использовать onclicks в ваших HTML. Использование обработчиков событий в вашем JS-файле считается лучшей практикой ???

Ответы [ 4 ]

9 голосов
/ 17 мая 2010

Вы можете иметь только один обработчик с 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".
3 голосов
/ 17 мая 2010

Он отделяет ваш код от вашего контента и разметки. Чем чище разделение, тем легче его поддерживать, особенно когда ваша команда больше 1.

2 голосов
/ 17 мая 2010

Кроме того, это способствует разделению интересов. HTML - это структура вашей страницы, а Javascript - это «поведение». Отделение структуры от поведения позволяет больше повторного использования кода и простота обслуживания. (Именно поэтому презентация [css] отделена от структуры)

1 голос
/ 17 мая 2010

Это способствует четкому разделению между дизайном (HTML, CSS) и действием (javascript). По той же причине, по которой лучше хранить код на стороне сервера отдельно от кода дисплея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...