File tree Expand file tree Collapse file tree 2 files changed +12
-15
lines changed
Expand file tree Collapse file tree 2 files changed +12
-15
lines changed Original file line number Diff line number Diff line change @@ -39,7 +39,7 @@ jQuery.offset = {
3939 elem . style . position = "relative" ;
4040 }
4141
42- curOffset = curElem . offset ( ) || { top : 0 , left : 0 } ;
42+ curOffset = curElem . offset ( ) ;
4343 curCSSTop = jQuery . css ( elem , "top" ) ;
4444 curCSSLeft = jQuery . css ( elem , "left" ) ;
4545 calculatePosition = ( position === "absolute" || position === "fixed" ) &&
@@ -110,6 +110,9 @@ jQuery.fn.extend({
110110 ( docElem . clientLeft || 0 )
111111 } ;
112112 }
113+
114+ // Return zeros for disconnected and hidden elements (gh-2310)
115+ return rect ;
113116 } ,
114117
115118 position : function ( ) {
Original file line number Diff line number Diff line change @@ -49,30 +49,24 @@ test("empty set", function() {
4949} ) ;
5050
5151test ( "disconnected element" , function ( ) {
52- expect ( 1 ) ;
53-
54- var result ;
52+ expect ( 2 ) ;
5553
56- try {
57- result = jQuery ( document . createElement ( "div" ) ) . offset ( ) ;
58- } catch ( e ) { }
54+ var result = jQuery ( document . createElement ( "div" ) ) . offset ( ) ;
5955
60- ok ( ! result , "no position for disconnected element" ) ;
56+ equal ( result . top , 0 , "Retrieving offset on disconnected elements returns zeros (gh-2310)" ) ;
57+ equal ( result . left , 0 , "Retrieving offset on disconnected elements returns zeros (gh-2310)" ) ;
6158} ) ;
6259
6360test ( "hidden (display: none) element" , function ( ) {
64- expect ( 1 ) ;
65-
66- var result ,
67- node = jQuery ( "<div style='display: none' />" ) . appendTo ( "#qunit-fixture" ) ;
61+ expect ( 2 ) ;
6862
69- try {
63+ var node = jQuery ( "<div style='display: none' />" ) . appendTo ( "#qunit-fixture" ) ,
7064 result = node . offset ( ) ;
71- } catch ( e ) { }
7265
7366 node . remove ( ) ;
7467
75- ok ( ! result , "no position for hidden (display: none) element" ) ;
68+ equal ( result . top , 0 , "Retrieving offset on hidden elements returns zeros (gh-2310)" ) ;
69+ equal ( result . left , 0 , "Retrieving offset on hidden elements returns zeros (gh-2310)" ) ;
7670} ) ;
7771
7872testIframe ( "offset/absolute" , "absolute" , function ( $ , iframe ) {
You can’t perform that action at this time.
0 commit comments