mirror of
https://github.com/jquery/jquery.git
synced 2025-01-10 18:24:24 +00:00
Offset: revert to jQuery.contains for IE8's sake (compat only)
- getClientRects() throws on disconnected elements in IE8 only
This commit is contained in:
parent
25e8620da9
commit
6df399073c
@ -88,17 +88,22 @@ jQuery.fn.extend({
|
||||
});
|
||||
}
|
||||
|
||||
var docElem, win, rect, doc,
|
||||
elem = this[ 0 ];
|
||||
var docElem, win, rect,
|
||||
elem = this[ 0 ],
|
||||
doc = elem && elem.ownerDocument;
|
||||
|
||||
if ( !elem ) {
|
||||
if ( !doc ) {
|
||||
return;
|
||||
}
|
||||
|
||||
docElem = doc.documentElement;
|
||||
|
||||
// Support: IE<=11+
|
||||
// Running getBoundingClientRect on a
|
||||
// disconnected node in IE throws an error
|
||||
if ( !elem.getClientRects().length ) {
|
||||
// Support: IE8 only
|
||||
// getClientRects() errors on disconnected elems
|
||||
if ( !jQuery.contains( docElem, elem ) ) {
|
||||
return { top: 0, left: 0 };
|
||||
}
|
||||
|
||||
@ -106,9 +111,7 @@ jQuery.fn.extend({
|
||||
|
||||
// Make sure element is not hidden (display: none)
|
||||
if ( rect.width || rect.height ) {
|
||||
doc = elem.ownerDocument;
|
||||
win = getWindow( doc );
|
||||
docElem = doc.documentElement;
|
||||
|
||||
return {
|
||||
top: rect.top + ( win.pageYOffset || docElem.scrollTop ) -
|
||||
@ -118,7 +121,7 @@ jQuery.fn.extend({
|
||||
};
|
||||
}
|
||||
|
||||
// Return zeros for disconnected and hidden elements (gh-2310)
|
||||
// Return zeros for hidden elements
|
||||
return rect;
|
||||
},
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user