aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/offset.js5
-rw-r--r--test/unit/offset.js22
2 files changed, 12 insertions, 15 deletions
diff --git a/src/offset.js b/src/offset.js
index a6aa2f1d5..fcb7b14de 100644
--- a/src/offset.js
+++ b/src/offset.js
@@ -32,7 +32,7 @@ jQuery.offset = {
elem.style.position = "relative";
}
- curOffset = curElem.offset() || { top: 0, left: 0 };
+ curOffset = curElem.offset();
curCSSTop = jQuery.css( elem, "top" );
curCSSLeft = jQuery.css( elem, "left" );
calculatePosition = ( position === "absolute" || position === "fixed" ) &&
@@ -103,6 +103,9 @@ jQuery.fn.extend({
left: rect.left + win.pageXOffset - docElem.clientLeft
};
}
+
+ // Return zeros for disconnected and hidden elements (gh-2310)
+ return rect;
},
position: function() {
diff --git a/test/unit/offset.js b/test/unit/offset.js
index 7b2ecc905..bffe87dd1 100644
--- a/test/unit/offset.js
+++ b/test/unit/offset.js
@@ -48,30 +48,24 @@ test("empty set", function() {
});
test("disconnected element", function() {
- expect(1);
-
- var result;
+ expect( 2 );
- try {
- result = jQuery( document.createElement("div") ).offset();
- } catch ( e ) {}
+ var result = jQuery( document.createElement( "div" ) ).offset();
- ok( !result, "no position for disconnected element" );
+ equal( result.top, 0, "Retrieving offset on disconnected elements returns zeros (gh-2310)" );
+ equal( result.left, 0, "Retrieving offset on disconnected elements returns zeros (gh-2310)" );
});
test("hidden (display: none) element", function() {
- expect(1);
-
- var result,
- node = jQuery("<div style='display: none' />").appendTo("#qunit-fixture");
+ expect( 2 );
- try {
+ var node = jQuery("<div style='display: none' />").appendTo("#qunit-fixture"),
result = node.offset();
- } catch ( e ) {}
node.remove();
- ok( !result, "no position for hidden (display: none) element" );
+ equal( result.top, 0, "Retrieving offset on hidden elements returns zeros (gh-2310)" );
+ equal( result.left, 0, "Retrieving offset on hidden elements returns zeros (gh-2310)" );
});
testIframe("offset/absolute", "absolute", function($, iframe) {