Commit a2386a82 authored by Timmy Willison's avatar Timmy Willison

Offset: remove ownerDocument check in offset getter

Fixes gh-2115
parent d4dd548a
...@@ -79,6 +79,7 @@ jQuery.offset = { ...@@ -79,6 +79,7 @@ jQuery.offset = {
jQuery.fn.extend({ jQuery.fn.extend({
offset: function( options ) { offset: function( options ) {
// Preserve chaining for setter
if ( arguments.length ) { if ( arguments.length ) {
return options === undefined ? return options === undefined ?
this : this :
...@@ -87,11 +88,10 @@ jQuery.fn.extend({ ...@@ -87,11 +88,10 @@ jQuery.fn.extend({
}); });
} }
var docElem, win, rect, var docElem, win, rect, doc,
elem = this[ 0 ], elem = this[ 0 ];
doc = elem && elem.ownerDocument;
if ( !doc ) { if ( !elem ) {
return; return;
} }
...@@ -99,6 +99,7 @@ jQuery.fn.extend({ ...@@ -99,6 +99,7 @@ jQuery.fn.extend({
// Make sure element is not hidden (display: none) or disconnected // Make sure element is not hidden (display: none) or disconnected
if ( rect.width || rect.height || elem.getClientRects().length ) { if ( rect.width || rect.height || elem.getClientRects().length ) {
doc = elem.ownerDocument;
win = getWindow( doc ); win = getWindow( doc );
docElem = doc.documentElement; docElem = doc.documentElement;
......
...@@ -43,20 +43,11 @@ module("offset", { setup: function(){ ...@@ -43,20 +43,11 @@ module("offset", { setup: function(){
*/ */
test("empty set", function() { test("empty set", function() {
expect(2); expect( 2 );
strictEqual( jQuery().offset(), undefined, "offset() returns undefined for empty set (#11962)" ); strictEqual( jQuery().offset(), undefined, "offset() returns undefined for empty set (#11962)" );
strictEqual( jQuery().position(), undefined, "position() 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() { test("disconnected element", function() {
expect(1); expect(1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment