return null when no matched elements exist for offset and position

This commit is contained in:
Brandon Aaron 2009-03-17 20:50:17 +00:00
parent 36b4a9ba33
commit a37cccc882

View file

@ -1,7 +1,7 @@
if ( "getBoundingClientRect" in document.documentElement ) if ( "getBoundingClientRect" in document.documentElement )
jQuery.fn.offset = function() { jQuery.fn.offset = function() {
var elem = this[0]; var elem = this[0];
if ( !elem ) return { top: 0, left: 0 }; if ( !elem ) return null;
if ( elem === elem.ownerDocument.body ) return jQuery.offset.bodyOffset( elem ); if ( elem === elem.ownerDocument.body ) return jQuery.offset.bodyOffset( elem );
var box = elem.getBoundingClientRect(), doc = elem.ownerDocument, body = doc.body, docElem = doc.documentElement, var box = elem.getBoundingClientRect(), doc = elem.ownerDocument, body = doc.body, docElem = doc.documentElement,
clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,
@ -12,7 +12,7 @@ if ( "getBoundingClientRect" in document.documentElement )
else else
jQuery.fn.offset = function() { jQuery.fn.offset = function() {
var elem = this[0]; var elem = this[0];
if ( !elem ) return { top: 0, left: 0 }; if ( !elem ) return null;
if ( elem === elem.ownerDocument.body ) return jQuery.offset.bodyOffset( elem ); if ( elem === elem.ownerDocument.body ) return jQuery.offset.bodyOffset( elem );
jQuery.offset.initialized || jQuery.offset.initialize(); jQuery.offset.initialized || jQuery.offset.initialize();
@ -88,11 +88,12 @@ jQuery.offset = {
jQuery.fn.extend({ jQuery.fn.extend({
position: function() { position: function() {
var left = 0, top = 0, results; if ( !this[0] ) return null;
var left = 0, top = 0, results,
if ( this[0] ) {
// Get *real* offsetParent // Get *real* offsetParent
var offsetParent = this.offsetParent(), offsetParent = this.offsetParent(),
// Get correct offsets // Get correct offsets
offset = this.offset(), offset = this.offset(),
@ -113,7 +114,6 @@ jQuery.fn.extend({
top: offset.top - parentOffset.top, top: offset.top - parentOffset.top,
left: offset.left - parentOffset.left left: offset.left - parentOffset.left
}; };
}
return results; return results;
}, },
@ -132,7 +132,7 @@ jQuery.each( ['Left', 'Top'], function(i, name) {
var method = 'scroll' + name; var method = 'scroll' + name;
jQuery.fn[ method ] = function(val) { jQuery.fn[ method ] = function(val) {
if (!this[0]) return null; if ( !this[0] ) return null;
return val !== undefined ? return val !== undefined ?