2015-09-24 7 views
0

Я недавно видел этот комментарий событие:JavaScript и DOM Кнопка обработки

Пожалуйста, пожалуйста не ставьте JavaScript в HTML-элементов. Это неряшливо, бесполезно и PITA для работы.

this post. Что такое (вы) incognito? Означает ли он (вы), что каждое событие должно быть подключено вручную в куске JavaScript-кода? /JQuery (JQuery ударил, поскольку я, как правило, работаю в основном только с JavaScript, без плагинов)?

продиктовать ли лучшая практика, что вызовы функций должны быть прикреплены с помощью обычной JavaScript, или это более удобным для чтения, чтобы обеспечить вызов функции (а не строка из непрекращающейся JavaScript) непосредственно в наценке, так что вы знаете, что вызывается в прямой зависимости от того DOM элемента, например:

<button id="myButt" onclick="shake(myButt);" value="Shake it!" /> 

... или я ложному дерево?

+0

Я полностью согласен с комментарием, упомянутым в Вопросе. – Satpal

+0

Это хорошо, @Satpal ... но почему ?! – Paul

+1

Мне лично нравится следовать [Разделение проблем] (https://en.wikipedia.org/wiki/Separation_of_concerns), и это помогает в развязке логики программирования из HTML – Satpal

ответ

1

Это помогает в применении принципа дизайна Separation of concerns. Где ответственность за представление лежит на HTML, а поведение - на JavaScript. Короче говоря, он помогает развязать логику программирования из HTML.

Также очень полезные точки из Adding an Event Handler

встраиваемого обработчики событий вы получите очень плохое разделение кода JavaScript из HTML-разметки. Современные браузеры предоставляют дополнительные программные способы регистрации обработчиков событий для элементов страницы, что позволяет динамически добавлять один или несколько обработчиков во время жизни веб-страницы.

0

Для меня это, вероятно, дошло до сложности рассматриваемой страницы. Если это небольшая, простая HTML-страница, то я действительно не вижу вреда в использовании встроенных функций для обработки событий. Когда страница начинает увеличиваться со многими другими движущимися частями, есть определенное преимущество, заключающееся в том, что все js обрабатываются в центральном месте, так что вы можете просто быстро взглянуть на происходящее на птичьих глазах, вместо того, чтобы для анализа большого файла исходного кода, чтобы узнать, где используются функции. Knockout js работает в этом направлении и становится очень удобным, когда ваша страница начинает становиться действительно сложной.

+0

Спасибо, Роб. ИМХО, я считаю, наоборот: когда страница становится все более сложной, становится труднее найти нужные вам кнопки, поэтому я внедряю вызовы JS в событиях объектов, поэтому я знаю, что это есть и я ничего не пропустите. Тем не менее, я придерживаюсь строгого соглашения об именах, так что поиск объекта, который я ищу, прост.Тем не менее, вы подняли один вопрос с моей должности - он может быть закрыт для того, чтобы быть основанным на мнениях, поэтому мне придется немного изменить его. – Paul

Смежные вопросы