| define( [ | |
| "../core", | |
| "../var/documentElement", | |
| "../selector" // jQuery.contains | |
| ], function( jQuery, documentElement ) { | |
| "use strict"; | |
| var isAttached = function( elem ) { | |
| return jQuery.contains( elem.ownerDocument, elem ); | |
| }, | |
| composed = { composed: true }; | |
| // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only | |
| // Check attachment across shadow DOM boundaries when possible (gh-3504) | |
| // Support: iOS 10.0-10.2 only | |
| // Early iOS 10 versions support `attachShadow` but not `getRootNode`, | |
| // leading to errors. We need to check for `getRootNode`. | |
| if ( documentElement.getRootNode ) { | |
| isAttached = function( elem ) { | |
| return jQuery.contains( elem.ownerDocument, elem ) || | |
| elem.getRootNode( composed ) === elem.ownerDocument; | |
| }; | |
| } | |
| return isAttached; | |
| } ); |