Offset: remove ownerDocument check in offset getter

Fixes gh-2115
This commit is contained in:
Timmy Willison 2015-05-05 08:31:39 -07:00
parent 1617479fcf
commit 6176567361
2 changed files with 6 additions and 14 deletions

View File

@ -74,6 +74,7 @@ jQuery.offset = {
jQuery.fn.extend({
offset: function( options ) {
// Preserve chaining for setter
if ( arguments.length ) {
return options === undefined ?
this :
@ -82,11 +83,10 @@ jQuery.fn.extend({
});
}
var docElem, win, rect,
elem = this[ 0 ],
doc = elem && elem.ownerDocument;
var docElem, win, rect, doc,
elem = this[ 0 ];
if ( !doc ) {
if ( !elem ) {
return;
}
@ -94,6 +94,7 @@ jQuery.fn.extend({
// Make sure element is not hidden (display: none) or disconnected
if ( rect.width || rect.height || elem.getClientRects().length ) {
doc = elem.ownerDocument;
win = getWindow( doc );
docElem = doc.documentElement;

View File

@ -42,20 +42,11 @@ module("offset", { setup: function(){
*/
test("empty set", function() {
expect(2);
expect( 2 );
strictEqual( jQuery().offset(), undefined, "offset() returns undefined for empty set (#11962)" );
strictEqual( jQuery().position(), undefined, "position() returns undefined for empty set (#11962)" );
});
test("object without getBoundingClientRect", function() {
expect(2);
// Simulates a browser without gBCR on elements, we just want to return 0,0
var result = jQuery({ ownerDocument: document }).offset();
equal( result.top, 0, "Check top" );
equal( result.left, 0, "Check left" );
});
test("disconnected element", function() {
expect(1);