1
0
mirror of synced 2025-02-03 21:59:24 +03:00
Kevin Brown d8d2aa5b03 Switch back to late binding the positioning handlers
This is how it used to work pre-4.0.9, where the bound handlers for
resizing and positioning the dropdown were bound at the first time
that the dropdown was opened. This was changed for the 4.0.9 release
as a part of 3f75227a693 where it was not clear why this late binding
was happening, so it was removed to simplify the code.

The late binding is necessary because the handlers within results for
generating the results, and thus the content within the dropdown,
are bound after the handlers for the dropdown are bound. This results
in situations where the handlers for positioning the dropdown are
bound before the dropdown is updated with content, resulting in the
positioning being calculated for the old content and thus being
incorrectly placed. By binding the positioning handlers after the
dropdow is opened for the first time, we can ensure that the
positioning handlers are bound after the result handlers, so we
won't have to worry about this issue.

The handlers are only bound once because they only need to perform
all the calculations a single time. There is no need to keep checking
all of the calculated styles more than we need to, so this is guarded
by a flag which ensures it is only bound a single time per dropdown.

Fixes #5619
Fixes #5620
2019-08-27 22:20:39 -04:00
2019-03-12 22:07:42 -04:00
2019-08-07 21:30:49 -04:00
2017-09-10 17:57:07 -04:00
2014-10-21 21:43:56 -04:00
2015-04-28 01:35:14 +02:00
2015-03-14 19:05:24 -04:00
2016-05-23 23:38:45 -04:00
2019-06-04 21:18:37 -04:00
2016-11-03 11:23:50 +01:00
2019-08-07 21:40:36 -04:00
2019-08-07 21:26:10 -04:00
2019-06-04 21:18:37 -04:00
2019-08-07 21:26:10 -04:00
2019-06-04 20:46:45 -04:00

Select2

Build Status cdnjs jsdelivr

Select2 is a jQuery-based replacement for select boxes. It supports searching, remote data sets, and pagination of results.

To get started, checkout examples and documentation at https://select2.org/

Use cases

  • Enhancing native selects with search.
  • Enhancing native selects with a better multi-select interface.
  • Loading data from JavaScript: easily load items via AJAX and have them searchable.
  • Nesting optgroups: native selects only support one level of nesting. Select2 does not have this restriction.
  • Tagging: ability to add new items on the fly.
  • Working with large, remote datasets: ability to partially load a dataset based on the search term.
  • Paging of large datasets: easy support for loading more pages when the results are scrolled to the end.
  • Templating: support for custom rendering of results and selections.

Browser compatibility

  • IE 8+
  • Chrome 8+
  • Firefox 10+
  • Safari 3+
  • Opera 10.6+

Usage

You can source Select2 directly from a CDN like JSDliver or CDNJS, download it from this GitHub repo, or use one of the integrations below.

Integrations

Third party developers have created plugins for platforms which allow Select2 to be integrated more natively and quickly. For many platforms, additional plugins are not required because Select2 acts as a standard <select> box.

Plugins

Themes

Missing an integration? Modify this README and make a pull request back here to Select2 on GitHub.

Internationalization (i18n)

Select2 supports multiple languages by simply including the right language JS file (dist/js/i18n/it.js, dist/js/i18n/nl.js, etc.) after dist/js/select2.js.

Missing a language? Just copy src/js/select2/i18n/en.js, translate it, and make a pull request back to Select2 here on GitHub.

Documentation

The documentation for Select2 is available through GitHub Pages and is located within the separate select2/docs repository.

Community

You can find out about the different ways to get in touch with the Select2 community at the Select2 community page.

The license is available within the repository in the LICENSE file.

Description
Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.
Readme 12 MiB
Languages
JavaScript 83.6%
HTML 8.5%
SCSS 7.9%