The official jQuery user interface library.
Go to file
Ryan Oriecuia 573e7e69c9 Autocomplete: Fix IE/Edge scrolling issues
IE11 and scrolling autocompletes didn't get along great; this should help fix
their relationship.

When you click on an autocomplete scrollbar in IE11, the menu temporarily
gains focus, which caused a couple problems.

1. Depending on how long you clicked, the dropdown could close.

2. Scrolling down by clicking the scrollbar's down arrow would misbehave. The
list would pop back up to the top with the first item selected.

We can fix both problems by modifying the focus/blur handling a bit.

1. There is a flag to instruct the control to ignore blurs, but it was getting
cleared too quickly; when the code refocused the input after it was blurred,
IE would send *another* blur event, which wasn't getting ignored and would
close the dropdown. We now wait for the focus/blur pair to process before
clearing the flag.

2. We remove the tabindex from the dropdown menu, which prevents menu's focus
handler from firing. When you focus a menu, it will select the first menu item
if none are selected. Selecting a menu item will scroll it into view if it's
not visible. This combination of behaviors was causing the strange behavior
when attempting to scroll down.

I couldn't figure out a way to write a unit test for this, since it's IE only
and seems to require user interaction. You can verify the previous behavior
(and the fix) on `demos/autocomplete/maxheight.html`

Fixes #9638
Closes gh-1785
2017-01-25 10:57:34 -05:00
build Build: Stop using the jquery-ui-future browser set 2016-11-02 12:53:30 -04:00
demos Themes: Optimize PNG files with zopflipng 2016-11-29 09:42:36 -05:00
external Build: Add jQuery 3.1.1 2016-11-02 12:52:22 -04:00
tests Selectmenu: Don't render options with the hidden attribute 2016-11-16 12:52:15 -05:00
themes/base Themes: Optimize PNG files with zopflipng 2016-11-29 09:42:36 -05:00
ui Autocomplete: Fix IE/Edge scrolling issues 2017-01-25 10:57:34 -05:00
.csslintrc Build: Remove duplicate box-sizing from .csslintrc 2015-10-08 14:02:47 -04:00
.editorconfig Exempt external directory from .editorconfig rules 2012-10-21 22:45:41 -04:00
.gitattributes Build: Force LF for JS source files 2014-03-05 10:15:37 +01:00
.gitignore Build: Add bower_components to .gitignore 2016-05-25 16:42:20 -04:00
.jscsrc Build: Remove maxLineLength execption in .jscsrc 2016-04-13 11:32:22 -04:00
.jshintrc Build: Add demos to jscs and jshint 2015-07-21 11:00:40 -04:00
.mailmap Build: Adjust author info for Dan Strohl 2016-06-30 11:07:44 -04:00
.travis.yml Build: Run Travis tests on Node.js 6, not 0.12 2016-11-02 12:51:23 -04:00
AUTHORS.txt Build: Update authors list 2016-09-14 12:29:20 -04:00
bower.json Build: Add jQuery 3.1.1 2016-11-02 12:52:22 -04:00
CONTRIBUTING.md CONTRIBUTING: Replace grunt commands with npm 2016-08-24 11:55:53 -04:00
Gruntfile.js Build: Add jQuery 3.1.1 2016-11-02 12:52:22 -04:00
LICENSE.txt Build: Remove dates from copyright notice 2015-01-02 09:02:12 -05:00
package.json Build: Updating the master version to 1.12.2-pre. 2016-09-14 12:34:40 -04:00
README.md README: Remove section on building jQuery UI 2015-09-16 11:48:25 -04:00

jQuery UI - Interactions and Widgets for the web

jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of jQuery. Whether you're building highly interactive web applications, or you just need to add a date picker to a form control, jQuery UI is the perfect choice.

If you want to use jQuery UI, go to jqueryui.com to get started, jqueryui.com/demos/ for demos, api.jqueryui.com for API documentation, or the Using jQuery UI Forum for discussions and questions.

If you want to report a bug/issue, please visit bugs.jqueryui.com.

If you are interested in helping develop jQuery UI, you are in the right place. To discuss development with team members and the community, visit the Developing jQuery UI Forum or #jqueryui-dev on irc.freenode.net.

For Contributors

If you want to help and provide a patch for a bugfix or new feature, please take a few minutes and look at our Getting Involved guide. In particular check out the Coding standards and Commit Message Style Guide.

In general, fork the project, create a branch for a specific change and send a pull request for that branch. Don't mix unrelated changes. You can use the commit message as the description for the pull request.

For more information, see the contributing page.

Running the Unit Tests

Run the unit tests manually with appropriate browsers and any local web server. See our environment setup and information on running tests.

You can also run the unit tests inside phantomjs by setting up your environment.