Commit Graph

11 Commits

Author SHA1 Message Date
Michał Gołębiowski-Owczarek
0c5becce0e
Widget: Optimize attachment of the _untrackClassesElement listener
jQuery UI 1.13.0 changed the logic attaching the `_untrackClassesElement`
listener in the `_classes` widget method; one of the side effects was calling
`this._on` for each node that needed the listener. That caused a severe
performance degradation for large comboboxes as each `_on` jQuery UI call
causes a jQuery `add` call that calls Sizzle's `uniqueSort` underneath.

Instead, collect the nodes that need the listener and then, outside of the loop,
create a jQuery object out of them and attach the listener once. That's still
slower than the jQuery 1.12 version but only slightly: 936 ms to 1.03s on a very
large list on a recent MacBook Pro, compared to ~30 seconds before this patch.

Fixes gh-2014
Closes gh-2037
2022-01-15 01:26:23 +01:00
Ben Mullins
933ce5d779
Autocomplete: Rewrite with a delay instead of appending the live region
This fixes the issue caused by https://bugs.jqueryui.com/ticket/9357.
We now empty the live region instead of appending to it, and we do so
after a brief timeout so the live region isn't updated on every mousemove
event or when quickly traversing through options.

Fixes gh-2002
Closes gh-2031
2022-01-05 11:35:34 +01:00
Michał Gołębiowski-Owczarek
70dae67b73
Build: Migrate from JSHint & JSCS to ESLint
Fixes #15393
Closes gh-1958
2021-06-07 00:58:12 +02:00
Michał Gołębiowski-Owczarek
e7a10c70ae
Tests: Ensure no timers are running at the end of each test (#1920)
This helps fix issues that make tooltip tests sometimes fail when run against
jQuery 3.2 or newer due to timing differences.

Details:
* Add the `moduleAfterEach` function ensuring no timers are running.
* Attach this function via `common.testWidget`.
* Attach this function to most test suites.
* Add a tooltip test helper cleaning up leftover timers.
* Rename legacy `setup`/`teardown` hooks to `beforeEach`/`afterEach`.

Closes gh-1920
2020-05-16 09:16:24 +02:00
Amanpreet Singh
fd1c236c0f Autocomplete: Shift to use no globals 2016-04-14 00:06:11 +05:30
Scott González
1007ee811c Autocomplete: Whitespace 2015-10-16 14:14:45 -04:00
Scott González
548fbf570c Autocomplete: Close the menu on any outside interactions
This ensures that the menu will close if the user interacts with a
draggable, resizable, etc. element since those interactions don't
change focus.

Ref #6642
Closes gh-1614
2015-10-16 14:09:05 -04:00
Alexander Schmitz
8029cc94e1 Autocomplete: Style updates
Ref #14246
Ref gh-1588
2015-08-21 08:06:23 -04:00
Alexander Schmitz
4c6b1463ea Autocomplete: Move autocomplete into widgets folder
Ref #13885
2015-08-08 00:29:37 -04:00
Alexander Schmitz
8b4ce807cd Autocomplete: Remove core event/alias and deprecated module dependencies 2015-05-20 14:27:55 -04:00
Scott González
bde431bb44 Tests: Rename files
Ref gh-1528
2015-04-09 09:27:00 -04:00