Jump to content
  • 0

Глобальная обработка событий при помощи JS


zx400bx2
 Share

Question

Здравствуйте.

Целесообразно ли писать скрипт который обрабатывал все события на странице?

С чего все началось? Не помню какой сайт... Я обнаружил я один интересный момент.

На сайте есть рисунок. <img name="crimage" src="someimage.gif" alt=""> никаких предпосылок событий для этого рисунка я не заметил.

Но стоит кликнуть на этот рисунок, как всплывает подсказка или загружается другая страничка.

На сайте очень много JS подключаемых.

Я так понимаю, что есть некий скрипт, который следит за всеми событиями на станице?

Я еще по старинке пишу <img src="/pathtoimg" onClick="function()"> Или это уже устарело? Уж больно интересно. Поделитесь опытом. :)

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0
Но это удобно для дальнейшей модификации.

Согласен... +1, но сам принцип меня заинтересовал... Попробую написать свой обработчик event, постараюсь не использовать теги "onMouseOver, onMouseOut, onClick"... :D

Link to comment
Share on other sites

  • 0

Это называется делегация событий.

Обязательна для освоения, некоторые вещи так делать гораздо быстрее или эффективней с точки зрения производительсти.

Особенно удобно на страницах где много динамических изменений, и при традиционном подходе пришлось бы постоянно атачить обработчики к создаваемым элементам.

3 абзаца, но на русском — http://designformasters.info/posts/seven-j...vent-delegation

подробно с примерами — http://icant.co.uk/sandbox/eventdelegation/

Link to comment
Share on other sites

  • 0
Это называется делегация событий.

Обязательна для освоения, некоторые вещи так делать гораздо быстрее или эффективней с точки зрения производительсти.

Особенно удобно на страницах где много динамических изменений, и при традиционном подходе пришлось бы постоянно атачить обработчики к создаваемым элементам.

3 абзаца, но на русском — http://designformasters.info/posts/seven-j...vent-delegation

подробно с примерами — http://icant.co.uk/sandbox/eventdelegation/

Ага, дебаг такого кода через пару месяцев приведет в ужас любого кодера. Начнем с того, что нет массива рарегистрированных listener'ов, а это значит, что понять, какие именно обработчики есть у этой ноды можно только после детального изучения кода. Если с одной HTML структурой могут работать более одного модуля, то тут начинается "веселье".

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

Link to comment
Share on other sites

  • 0
Ага, дебаг такого кода через пару месяцев приведет в ужас любого кодера. Начнем с того, что нет массива рарегистрированных listener'ов, а это значит, что понять, какие именно обработчики есть у этой ноды можно только после детального изучения кода. Если с одной HTML структурой могут работать более одного модуля, то тут начинается "веселье".

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

Спасибо за объяснение. Я еще 10 раз подумаю перед тем, как использовать. Но это дает 1 плюс. Как вы сказали, трудность понимания этого когда. Злоумышленнику, тоже нужно будет "попарится".... прежде чем он поймет, что к чему.

Да такое бывает у меня (но не часто) - через 3 - 4 месяца не узнаешь собственный код :D))

Спасибо Вам за помощь в данном вопросе :)

Link to comment
Share on other sites

  • 0
Спасибо за объяснение. Я еще 10 раз подумаю перед тем, как использовать. Но это дает 1 плюс. Как вы сказали, трудность понимания этого когда. Злоумышленнику, тоже нужно будет "попарится".... прежде чем он поймет, что к чему.

Да такое бывает у меня (но не часто) - через 3 - 4 месяца не узнаешь собственный код :D))

Спасибо Вам за помощь в данном вопросе :)

Пользовать можно, это удобный способ добавления событий автоматически. Но в местах, где это совершенно не критично, или не вызывает особых проблем с пониманием того, как это работает.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy