Коли я хочу запобігти виконанню інших обробників подій після запуску певної події, я можу використовувати одну з двох методик. Я буду використовувати jQuery у прикладах, але це стосується і звичайного JS:
1. event.preventDefault()
$('a').click(function (e) {
// custom handling here
e.preventDefault();
});
2. return false
$('a').click(function () {
// custom handling here
return false;
});
Чи є якась істотна різниця між цими двома методами зупинки поширення подій?
Для мене return false;
простіший, коротший і, ймовірно, менш схильний до помилок, ніж виконання методу. За допомогою методу ви повинні пам’ятати про правильний кожух, дужки тощо.
Крім того, я повинен визначити перший параметр у зворотному дзвінку, щоб мати можливість викликати метод. Можливо, є деякі причини, чому я повинен уникати цього робити і використовувати preventDefault
замість цього? Який кращий спосіб?
preventDefault
це НЕ заважає іншим лівшів від виконання. Ось для чогоstopImmediatePropagation
.