Jeśli chcę uniemożliwić wykonywanie innych procedur obsługi zdarzeń po uruchomieniu określonego zdarzenia, mogę użyć jednej z dwóch technik. W przykładach użyję jQuery, ale dotyczy to również zwykłego JS:
1. event.preventDefault()
$('a').click(function (e) {
// custom handling here
e.preventDefault();
});
2) return false
$('a').click(function () {
// custom handling here
return false;
});
Czy istnieje jakaś znacząca różnica między tymi dwiema metodami zatrzymywania propagacji zdarzeń?
Dla mnie return false;
jest prostszy, krótszy i prawdopodobnie mniej podatny na błędy niż wykonywanie metody. Metodą należy pamiętać o prawidłowej obudowie, nawiasie itp.
Ponadto muszę zdefiniować pierwszy parametr w wywołaniu zwrotnym, aby móc wywołać metodę. Być może istnieje kilka powodów, dla których powinienem unikać robienia tego w ten sposób i preventDefault
zamiast tego używać ? Jaki jest lepszy sposób?
preventDefault
jest nie uniemożliwić innym handers z wykonaniem. Po tostopImmediatePropagation
jest.