mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Offset: return zeros for disconnected/hidden elements
Fixes gh-2310 Close gh-2396
This commit is contained in:
parent
ee69e9c8b8
commit
63f19a95b9
@ -39,7 +39,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" ) &&
|
||||
@ -110,6 +110,9 @@ jQuery.fn.extend({
|
||||
( docElem.clientLeft || 0 )
|
||||
};
|
||||
}
|
||||
|
||||
// Return zeros for disconnected and hidden elements (gh-2310)
|
||||
return rect;
|
||||
},
|
||||
|
||||
position: function() {
|
||||
|
@ -49,30 +49,24 @@ test("empty set", function() {
|
||||
});
|
||||
|
||||
test("disconnected element", function() {
|
||||
expect(1);
|
||||
expect( 2 );
|
||||
|
||||
var result;
|
||||
var result = jQuery( document.createElement( "div" ) ).offset();
|
||||
|
||||
try {
|
||||
result = jQuery( document.createElement("div") ).offset();
|
||||
} catch ( e ) {}
|
||||
|
||||
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);
|
||||
expect( 2 );
|
||||
|
||||
var result,
|
||||
node = jQuery("<div style='display: none' />").appendTo("#qunit-fixture");
|
||||
|
||||
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) {
|
||||
|
Loading…
Reference in New Issue
Block a user