Да, они разные.
return false
в основном совпадает с вызовом обоих, event.stopPropagation()
и event.preventDefault()
.
Принимая во внимание, что event.stopImmediatePropagation()
совпадает с event.stopPropagation()
плюс , предотвращая другие зарегистрированные обработчики событий натот же элемент, который будет выполнен.Таким образом, это не мешает действию по умолчанию для события, например, по нажатой ссылке.
Вкратце:
stop | prevent | prevent "same element"
bubbling | default action | event handlers
return false Yes Yes No
preventDefault No Yes No
stopPropagation Yes No No
stopImmediatePropagation Yes No Yes
return false
также работает в "обычном" JavaScriptобработчики событий
event.stopPropagation()
и event.preventDefault()
также работают в «обычных» обработчиках событий JavaScript (в браузере, совместимом с W3C), тогда как event.stopImmediatePropagation()
является расширением из jQuery ( update: очевидно, это часть спецификации DOM Level 3 Events ).
Примечание: return false
не не предотвращает событиеот пузырей в "нормальных" (не jQuery) обработчиках событий (см. этот ответ ) (но все равно предотвращает действие по умолчанию).
Может бытьСтоит прочитать: