annotate default/node_modules/jquery/src/css/var/isHiddenWithinTree.js @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 define( [
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2 "../../core",
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3 "../../selector"
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5 // css is assumed
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6 ], function( jQuery ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7 "use strict";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9 // isHiddenWithinTree reports if an element has a non-"none" display style (inline and/or
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10 // through the CSS cascade), which is useful in deciding whether or not to make it visible.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 // It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12 // * A hidden ancestor does not force an element to be classified as hidden.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13 // * Being disconnected from the document does not force an element to be classified as hidden.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14 // These differences improve the behavior of .toggle() et al. when applied to elements that are
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15 // detached or contained within hidden ancestors (gh-2404, gh-2863).
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16 return function( elem, el ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18 // isHiddenWithinTree might be called from jQuery#filter function;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 // in that case, element will be second argument
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20 elem = el || elem;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22 // Inline style trumps all
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23 return elem.style.display === "none" ||
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24 elem.style.display === "" &&
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26 // Otherwise, check computed style
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27 // Support: Firefox <=43 - 45
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28 // Disconnected elements can have computed display: none, so first confirm that elem is
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29 // in the document.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30 jQuery.contains( elem.ownerDocument, elem ) &&
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32 jQuery.css( elem, "display" ) === "none";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33 };
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34 } );