Страницы

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

четверг, 13 февраля 2020 г.

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

#gwt #java


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

stopPropagation
Останавливает распространение базового нативного события.
preventDefault
Предотвращает действие по умолчанию базового нативного события.

Как-то так. Но ясности это не вносит.    


Ответы

Ответ 1



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

Ответ 2



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

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

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