Страницы

Поиск по вопросам

среда, 15 мая 2019 г.

Чем отличается preventDefault() от stopPropagation()?

Я использую оба метода, когда хочу закончить обработку события. Примерно как метод comsume() в Swing. И всегда ставлю вызовы этих методов вместе. Есть ли разница между preventDefault() и stopPropagation()? В документации сказано, что stopPropagation Останавливает распространение базового нативного события. preventDefault Предотвращает действие по умолчанию базового нативного события. Как-то так. Но ясности это не вносит.


Ответ

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

Комментариев нет:

Отправить комментарий