isAttached.js 798 B

1234567891011121314151617181920212223242526
  1. define( [
  2. "../core",
  3. "../var/documentElement",
  4. "../selector/contains" // jQuery.contains
  5. ], function( jQuery, documentElement ) {
  6. "use strict";
  7. var isAttached = function( elem ) {
  8. return jQuery.contains( elem.ownerDocument, elem );
  9. },
  10. composed = { composed: true };
  11. // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
  12. // Check attachment across shadow DOM boundaries when possible (gh-3504)
  13. // Support: iOS 10.0-10.2 only
  14. // Early iOS 10 versions support `attachShadow` but not `getRootNode`,
  15. // leading to errors. We need to check for `getRootNode`.
  16. if ( documentElement.getRootNode ) {
  17. isAttached = function( elem ) {
  18. return jQuery.contains( elem.ownerDocument, elem ) ||
  19. elem.getRootNode( composed ) === elem.ownerDocument;
  20. };
  21. }
  22. return isAttached;
  23. } );