]> source.dussan.org Git - jquery.git/commitdiff
Revert "Offset: remove ownerDocument check in offset getter"
authorOleg Gaidarenko <markelog@gmail.com>
Tue, 22 Dec 2015 13:07:19 +0000 (16:07 +0300)
committerOleg Gaidarenko <markelog@gmail.com>
Tue, 22 Dec 2015 13:14:27 +0000 (16:14 +0300)
This reverts commit a2386a8250c82e27680d21f7f6fd1eb9a8f7e938.

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

index f3c6b222c507ae81c85a8fdb9386d5c5e7341b85..8047c872ffba034f933323d50cc54f67c8c23f8c 100644 (file)
@@ -81,8 +81,6 @@ jQuery.offset = {
 
 jQuery.fn.extend( {
        offset: function( options ) {
-
-               // Preserve chaining for setter
                if ( arguments.length ) {
                        return options === undefined ?
                                this :
@@ -91,10 +89,11 @@ 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;
                }
 
index 25f747b49853531ebd7e40b729228b235497f1c6..e8c2c8f101c7c68eee9a66230705596d7b69b1c5 100644 (file)
@@ -43,11 +43,20 @@ QUnit.module( "offset", { setup: function() {
        the iframe window and the "jQuery" symbol is used to access any static methods.
 */
 
-QUnit.test( "empty set", function( assert ) {
-       assert.expect( 2 );
-       assert.strictEqual( jQuery().offset(), undefined, "offset() returns undefined for empty set (#11962)" );
-       assert.strictEqual( jQuery().position(), undefined, "position() returns undefined for empty set (#11962)" );
-} );
+test("empty set", function() {
+       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" );
+});
 
 QUnit.test( "disconnected element", function( assert ) {
        assert.expect( 2 );