6
6
* Released under the MIT license
7
7
* http://jquery.org/license
8
8
*
9
- * Date: 2016-07-29
9
+ * Date: 2016-07-30
10
10
*/
11
11
( function ( window ) {
12
12
@@ -472,7 +472,7 @@ function createDisabledPseudo( disabled ) {
472
472
// Only certain elements can match :enabled or :disabled
473
473
// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
474
474
// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
475
- return "form" in elem && elem . disabled === false ?
475
+ if ( "form" in elem ) {
476
476
477
477
// Check for inherited disabledness on relevant non-disabled elements:
478
478
// * listed form-associated elements in a disabled fieldset
@@ -481,29 +481,35 @@ function createDisabledPseudo( disabled ) {
481
481
// * option elements in a disabled optgroup
482
482
// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
483
483
// All such elements have a "form" property.
484
+ if ( elem . parentNode && elem . disabled === false ) {
485
+ return "label" in elem ?
486
+
487
+ // Option elements defer to a parent optgroup if present
488
+ ( "label" in elem . parentNode ?
489
+ elem . parentNode . disabled === disabled :
490
+ elem . disabled === disabled ) :
491
+
492
+ // Support: IE 6 - 11
493
+ // Use the isDisabled shortcut property to check for disabled fieldset ancestors
494
+ elem . isDisabled === disabled ||
495
+
496
+ // Where there is no isDisabled, check manually
497
+ /* jshint -W018 */
498
+ elem . isDisabled !== ! disabled &&
499
+ disabledAncestor ( elem ) === disabled ;
500
+ }
484
501
485
- // Support: IE 6 - 11
486
- // Use the isDisabled shortcut property, which already covers inheritance
487
- elem . isDisabled === disabled ||
488
-
489
- // Where there is no isDisabled, check ancestors manually
490
- /* jshint -W018 */
491
- elem . isDisabled !== ! disabled && ( "label" in elem ?
492
-
493
- // Option elements defer to a parent optgroup if present
494
- ( elem . parentNode && "label" in elem . parentNode ?
495
- elem . parentNode . disabled === disabled :
496
- elem . disabled === disabled ) :
502
+ return elem . disabled === disabled ;
497
503
498
- // All others defer to ancestor fieldsets if present
499
- disabledAncestor ( elem ) === disabled
500
- ) :
504
+ // Try to winnow out elements that can't be disabled before trusting the property.
505
+ // Some victims get caught in our net (label, legend, menu, track), but it shouldn't
506
+ // even exist on them, let alone have a boolean value.
507
+ } else if ( "label" in elem ) {
508
+ return elem . disabled === disabled ;
509
+ }
501
510
502
- // Try to winnow out elements that can't be disabled before trusting the property.
503
- // Some victims get caught in our net (label, legend, menu, track), but it shouldn't
504
- // even exist on them, let alone have a boolean value.
505
- "form" in elem && elem . disabled === disabled ||
506
- "label" in elem && elem . disabled === disabled ;
511
+ // Remaining elements are neither :enabled nor :disabled
512
+ return false ;
507
513
} ;
508
514
}
509
515
0 commit comments