fixed offset(coordinates) returns null when no matching elements in jQuery object (fixes ticket #5888)
This commit is contained in:
parent
a63754aa4e
commit
2c28f229e5
3 changed files with 16 additions and 10 deletions
|
@ -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 );
|
||||
}
|
||||
|
|
3
test/unit/effects.js
vendored
3
test/unit/effects.js
vendored
|
@ -29,10 +29,9 @@ 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>');
|
||||
|
||||
var old = jQuery("#show-tests table").show().css("display") !== "table";
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue