mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
ce60d31893
In IE (all versions), `focus` & `blur` handlers are fired asynchronously but `focusin` & `focusout` are run synchronously. In other browsers, all those handlers are fired synchronously. Asynchronous behavior of these handlers in IE caused issues for IE (gh-4856, gh-4859). We now simulate `focus` via `focusin` & `blur` via `focusout` in IE to avoid these issues. This also let us simplify some tests. This commit also simplifies `leverageNative` - with IE now using `focusin` to simulate `focus` and `focusout` to simulate `blur`, we don't have to deal with async events in `leverageNative`. This also fixes broken `focus` triggers after first triggering it on a hidden element - previously, `leverageNative` assumed that the native `focus` handler not firing after calling the native `focus` method meant it would be handled later, asynchronously, which was not the case (gh-4950). Fixes gh-4856 Fixes gh-4859 Fixes gh-4950 Closes gh-5223 Co-authored-by: Richard Gibson <richard.gibson@gmail.com> |
||
---|---|---|
.. | ||
ajax.js | ||
animation.js | ||
attributes.js | ||
basic.js | ||
callbacks.js | ||
core.js | ||
css.js | ||
data.js | ||
deferred.js | ||
deprecated.js | ||
dimensions.js | ||
effects.js | ||
event.js | ||
exports.js | ||
manipulation.js | ||
offset.js | ||
queue.js | ||
ready.js | ||
selector.js | ||
serialize.js | ||
support.js | ||
traversing.js | ||
tween.js | ||
wrap.js |