event.preventDefault () und return false (keine jQuery)
Fragte ich mich, ob event.preventDefault()
und return false
waren die gleichen.
Habe ich getan einige testsund es scheint, dass
- Ob der event-handler Hinzugefügt wird, indem man alte Modell, zum Beispiel
elem.onclick = function(){ return false; };
Dann
return false
verhindert, dass Standard-Aktion, wieevent.preventDefault()
. - Ob der event-handler Hinzugefügt wird, mit
addEventListener
zum Beispielelem.addEventListener( 'click', function(e){ return false; }, false );
Dann
return false
nicht verhindern, dass die default-Aktion.
Machen alle Browser so zu Verhalten?
Gibt es weitere Unterschiede zwischen event.preventDefault()
und return false
?
Wo finde ich eine Dokumentation (ich konnte nicht in MDN) über return false
benimmt sich wie event.preventDefault()
in einigen Fällen?
Meine Frage ist nur über einfachen javascript, nicht jQuery, also bitte nicht markieren Sie es als ein Duplikat von event.preventDefault() vs. return falseauch wenn beide Fragen haben fast den gleichen Titel.
InformationsquelleAutor der Frage Oriol | 2013-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den W3C Document Object Model Ereignisse Spezifikation in 1.3.1. Event-Registrierung-Schnittstellen besagt, dass
handleEvent
im EventListener hat keinen Rückgabewert:unter 1.2.4. Event-Absage das Dokument auch fest, dass
was sollte Sie davon abhalten aus mit einem Effekt, der Rückgabe von true /false kann in jedem browser und verwenden Sie
event.preventDefault()
.Update
Die HTML5-Spezifikation legt fest, wie zu behandeln, eine Rückkehr von unterschiedlichen Wert. Abschnitt 6.1.5.1 der HTML-Spezifikation besagt, dass
für alles, aber die "mouseover" - Ereignis.
Abschluss
Ich würde noch empfehlen die Verwendung
event.preventDefault()
bei den meisten Projekten, da Sie kompatibel mit der alten Skillung und so älteren Browsern. Nur dann, wenn Sie nur brauchen, um Unterstützung für cutting-edge-Browser, Rückgabe von false zu stornieren ist in Ordnung.InformationsquelleAutor der Antwort Thorben Bochenek
Unterschied zwischen preventDefault, stopPropogation, return false
Standard-Action – Server-side Aktion, wenn das Steuerelement-Ereignis erhöhen.
Nehmen wir an, wir haben div kontrollieren und es im inneren haben wir eine Schaltfläche. Also div ist das übergeordnete Steuerelement die-Taste. Wir haben die Client-Seite und klicken Sie auf server-side-click-Ereignis der Schaltfläche. Auch haben wir die client-Seite auf event des div.
Beim klicken-Ereignis der Schaltfläche, auf der client-Seite, können wir die Kontrolle über die Handlungen des übergeordneten Steuerelements ein-und server-side-code mithilfe der folgenden drei Möglichkeiten:
return false
- Diese erlauben nur client-side-event der Steuerung. Server-side-event-und client-side-event des übergeordneten Steuerelements wird nicht ausgelöst.preventDefault()
- Diese ermöglichen es client-side-event der Steuerung und der übergeordneten Steuerung. Server-side-event, dh. Standardaktion des Steuerelements wird nicht ausgelöst.stopPropogation()
– Diese erlauben die client-seitige als auch server-side-event der Steuerung. Client-side-event der Steuerung ist notallowed.InformationsquelleAutor der Antwort Rahul Shinde
return false
ist nur für den IE,event.preventDefault()
wird unterstützt von chrome,ff... modernen BrowserInformationsquelleAutor der Antwort ppy