]> source.dussan.org Git - jquery.git/commitdiff
Offset: remove ownerDocument check in offset getter
authorTimmy Willison <timmywillisn@gmail.com>
Tue, 5 May 2015 15:31:39 +0000 (08:31 -0700)
committerTimmy Willison <timmywillisn@gmail.com>
Tue, 5 May 2015 15:31:39 +0000 (08:31 -0700)
Fixes gh-2115

src/offset.js
test/unit/offset.js

index 49ff26ac9dcde45b6f1e3f3084af5a328107c7eb..adcc8d64c81831af6d3a9c9b524e3b9174028f24 100644 (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;
 
index 057aa6df7badc3baa041a73c7f79cdc866792fb4..1a467ecff989454e6e7e74384d203e646b22d712 100644 (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);