diff options
author | Michał Gołębiowski-Owczarek <m.goleb@gmail.com> | 2020-01-22 16:44:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-22 16:44:34 +0100 |
commit | 0c860b0d92f9959f6747f8c02e9671eb2fc561aa (patch) | |
tree | eec1af4f3a9eead707e2674593bda620b5f7c9cb /ui/widgets/accordion.js | |
parent | 3481f50bfcf02865857d390a1caa511003a40c13 (diff) | |
download | jquery-ui-0c860b0d92f9959f6747f8c02e9671eb2fc561aa.tar.gz jquery-ui-0c860b0d92f9959f6747f8c02e9671eb2fc561aa.zip |
All: Remove usage of jQuery positional selectors
jQuery positional selectors () have been deprecated in
[jQuery 3.4.0](https://blog.jquery.com/2019/04/10/jquery-3-4-0-released/)
and they'll be removed in jQuery 4.0.0. This PR removes their usage.
Most of the changes were possible without changing public API. However,
dropping `:even` usage required a change to the
[`header` option](https://api.jqueryui.com/accordion/#option-header)
of the accordion widget. I made it an optional function; this will need
to be documented.
The polyfill for `.even()` & `.odd()` is added for jQuery <3.5.0. There was
no usage of the :odd selector in the code but the `.odd()` method is also
polyfilled for completeness.
Closes gh-1904
Diffstat (limited to 'ui/widgets/accordion.js')
-rw-r--r-- | ui/widgets/accordion.js | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ui/widgets/accordion.js b/ui/widgets/accordion.js index 530d73543..59a6a7315 100644 --- a/ui/widgets/accordion.js +++ b/ui/widgets/accordion.js @@ -48,7 +48,9 @@ return $.widget( "ui.accordion", { }, collapsible: false, event: "click", - header: "> li > :first-child, > :not(li):even", + header: function( elem ) { + return elem.find( "> li > :first-child" ).add( elem.find( "> :not(li)" ).even() ); + }, heightStyle: "auto", icons: { activeHeader: "ui-icon-triangle-1-s", @@ -279,7 +281,11 @@ return $.widget( "ui.accordion", { var prevHeaders = this.headers, prevPanels = this.panels; - this.headers = this.element.find( this.options.header ); + if ( typeof this.options.header === "function" ) { + this.headers = this.options.header( this.element ); + } else { + this.headers = this.element.find( this.options.header ); + } this._addClass( this.headers, "ui-accordion-header ui-accordion-header-collapsed", "ui-state-default" ); |