Wenn ich verhindern möchte, dass andere Ereignishandler ausgeführt werden, nachdem ein bestimmtes Ereignis ausgelöst wurde, kann ich eine von zwei Techniken verwenden. Ich werde jQuery in den Beispielen verwenden, aber dies gilt auch für Plain-JS:
1. event.preventDefault()
$('a').click(function (e) {
// custom handling here
e.preventDefault();
});
2. return false
$('a').click(function () {
// custom handling here
return false;
});
Gibt es einen signifikanten Unterschied zwischen diesen beiden Methoden zum Stoppen der Ereignisausbreitung?
Für mich return false;
ist es einfacher, kürzer und wahrscheinlich weniger fehleranfällig als das Ausführen einer Methode. Bei der Methode müssen Sie sich an das richtige Gehäuse, die richtige Klammer usw. erinnern.
Außerdem muss ich den ersten Parameter im Rückruf definieren, um die Methode aufrufen zu können. Vielleicht gibt es einige Gründe, warum ich es vermeiden sollte, es so zu machen und preventDefault
stattdessen zu verwenden? Was ist der bessere Weg?
preventDefault
ist nicht andere handers verhindert die Ausführung. DafürstopImmediatePropagation
ist es da.