Wenn sie gleich sind, warum gibt es dann zwei solcher Ereignisse?
javascript
jquery
dom
dom-events
Liebesfrühling
quelle
quelle
Antworten:
Wie Sie wissen, wird das Ereignis onBlur für ein Element ausgelöst, wenn dieses Element den Fokus hatte, ihn jedoch verliert.
Das Ereignis onFocusOut wird in diesem Fall ausgelöst , aber auch ausgelöst , wenn ein untergeordnetes Element den Fokus verliert.
Beispielsweise haben Sie ein Div mit spezieller Formatierung, da der Mensch gerade ein Feld in diesem Bereich bearbeitet. Sie können onFocusOut verwenden , um diese Formatierung zu deaktivieren , wenn der Fokus dieses Div verlässt.
Bis vor kurzem wurde onFocusOut nur vom IE verwendet. Wenn sich das geändert hat, war es sehr neu. Test in FF, Chrome usw.
quelle
onfocusout
. jsfiddle.net/4n39h/1e.type
für jQuery on click handler fürblur
istfocusout
und nichtblur
, ich verstehe nicht warum.Gemäß der Spezifikation für die Focusout- Ereignistyp:
Während
blur
Ereignisse blubbern und später versendet werden.quelle
Im Jahr 2017 gibt es im Wesentlichen keinen Unterschied:
https://www.quirksmode.org/js/events_order.html
quelle
Das Focusout-Ereignis wird ausgelöst, wenn ein Element den Fokus verliert.
Der Hauptunterschied zwischen diesem Ereignis und Unschärfe besteht darin, dass Fokusblasen auftreten, während Unschärfe dies nicht tut. Meistens können sie austauschbar verwendet werden.
quelle
Die Jquery-Dokumentation enthält eine gute
focusout
vs.blur
Demo, die ich der Klarheit halber weiter unten wiedergeben werde. Kurz gesagt, wirdfocusout
ausgelöst, wenn der Selektor -$('p')
in der Demo - alles enthält, einschließlich der Eingaben und übergeordneten Elemente. Während,blur
feuert nur dann , wenn der Wähler an den Eingängen ist -$('input')
.quelle