diff options
author | Karl Swedberg <karl@englishrules.com> | 2010-01-21 23:18:54 +0800 |
---|---|---|
committer | John Resig <jeresig@gmail.com> | 2010-01-24 01:26:35 +0800 |
commit | 2c28f229e5eb49f1469fd36ee979529a492f0f42 (patch) | |
tree | 6a77ec6fee0525fd398dfea75ec69bd95d82b7d5 | |
parent | a63754aa4e4e430007208d6b5cb76f9ca8c279f5 (diff) | |
download | jquery-2c28f229e5eb49f1469fd36ee979529a492f0f42.tar.gz jquery-2c28f229e5eb49f1469fd36ee979529a492f0f42.zip |
fixed offset(coordinates) returns null when no matching elements in jQuery object (fixes ticket #5888)
-rw-r--r-- | src/offset.js | 16 | ||||
-rw-r--r-- | test/unit/effects.js | 3 | ||||
-rw-r--r-- | test/unit/offset.js | 7 |
3 files changed, 16 insertions, 10 deletions
diff --git a/src/offset.js b/src/offset.js index c3183743b..f80574eea 100644 --- a/src/offset.js +++ b/src/offset.js @@ -2,16 +2,16 @@ if ( "getBoundingClientRect" in document.documentElement ) { jQuery.fn.offset = function( options ) { var elem = this[0]; - if ( !elem || !elem.ownerDocument ) { - return null; - } - if ( options ) { return this.each(function( i ) { jQuery.offset.setOffset( this, options, i ); }); } + if ( !elem || !elem.ownerDocument ) { + return null; + } + if ( elem === elem.ownerDocument.body ) { return jQuery.offset.bodyOffset( elem ); } @@ -28,16 +28,16 @@ if ( "getBoundingClientRect" in document.documentElement ) { jQuery.fn.offset = function( options ) { var elem = this[0]; - if ( !elem || !elem.ownerDocument ) { - return null; - } - if ( options ) { return this.each(function( i ) { jQuery.offset.setOffset( this, options, i ); }); } + if ( !elem || !elem.ownerDocument ) { + return null; + } + if ( elem === elem.ownerDocument.body ) { return jQuery.offset.bodyOffset( elem ); } diff --git a/test/unit/effects.js b/test/unit/effects.js index e44739bf3..467631c7b 100644 --- a/test/unit/effects.js +++ b/test/unit/effects.js @@ -29,9 +29,8 @@ test("show()", function() { div.hide().show(speed, function() { pass = false; }); - ok( pass, "Show with " + name + " does not call animate callback"); + ok( pass, "Show with " + name + " does not call animate callback" ); }); - jQuery("#main").append('<div id="show-tests"><div><p><a href="#"></a></p><code></code><pre></pre><span></span></div><table><thead><tr><th></th></tr></thead><tbody><tr><td></td></tr></tbody></table><ul><li></li></ul></div>'); diff --git a/test/unit/offset.js b/test/unit/offset.js index dc03bc2e2..dbaddc862 100644 --- a/test/unit/offset.js +++ b/test/unit/offset.js @@ -305,6 +305,13 @@ testoffset("body", function( jQuery ) { equals( jQuery('body').offset().left, 1, "jQuery('#body').offset().left" ); }); +test("Chaining offset(coords) returns jQuery object", function() { + expect(2); + var coords = { top: 1, left: 1 }; + equals( jQuery("#absolute-1").offset(coords).selector, "#absolute-1", "offset(coords) returns jQuery object" ); + equals( jQuery("#non-existent").offset(coords).selector, "#non-existent", "offset(coords) with empty jQuery set returns jQuery object" ); +}); + test("offsetParent", function(){ expect(11); |