Я использую оба метода, когда хочу закончить обработку события. Примерно как метод comsume() в Swing. И всегда ставлю вызовы этих методов вместе. Есть ли разница между preventDefault() и stopPropagation()? В документации сказано, что stopPropagation Останавливает распространение базового нативного события. preventDefault Предотвращает действие по умолчанию базового нативного события. Как-то так. Но ясности это не вносит.
Ответ
preventDefault запрещает стандартное поведение элемента. Например, клик на кнопку сабмита производит отправку формы, preventDeafult это прекратит. Нажатие на ссылку перенаправляет на другую страницу $('a').preventDefault(); запретит это действе. Ссылка станет просто активной подчеркнутой областью. stopPropagation запрещает передачу события от ребенка к родителю, то есть, если мы кликнули по вложенному диву, его родитель "не почувствует" этого нажатия. Идеи примеров использования. preventDefault: Тут все просто. Аяксовые ссылки. stopPropagation: например, кнопки поверх картинки. Если кликаем по картинке, включается следующая, если по кнопкам - какое-то другое действие, скажем, лупа. P.S. кликами все не ограничивается ;)
Комментариев нет:
Отправить комментарий