diff --git a/src/offset.js b/src/offset.js index bbb19c2e..b94faf37 100644 --- a/src/offset.js +++ b/src/offset.js @@ -23,14 +23,17 @@ if ( "getBoundingClientRect" in document.documentElement ) { try { box = elem.getBoundingClientRect(); - - } catch(e) { - return { top: 0, left: 0 }; - } + } catch(e) {} var doc = elem.ownerDocument, - body = doc.body, - docElem = doc.documentElement, + docElem = doc.documentElement; + + // Make sure we're not dealing with a disconnected DOM node + if ( !box || !jQuery.contains( docElem, elem ) ) { + return box || { top: 0, left: 0 }; + } + + var body = doc.body, win = getWindow(doc), clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,