aboutsummaryrefslogtreecommitdiffstats
path: root/ui/widgets/accordion.js
diff options
context:
space:
mode:
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>2020-01-22 16:44:34 +0100
committerGitHub <noreply@github.com>2020-01-22 16:44:34 +0100
commit0c860b0d92f9959f6747f8c02e9671eb2fc561aa (patch)
treeeec1af4f3a9eead707e2674593bda620b5f7c9cb /ui/widgets/accordion.js
parent3481f50bfcf02865857d390a1caa511003a40c13 (diff)
downloadjquery-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.js10
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" );