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 = {
39
39
elem . style . position = "relative" ;
40
40
}
41
41
42
- curOffset = curElem . offset ( ) || { top : 0 , left : 0 } ;
42
+ curOffset = curElem . offset ( ) ;
43
43
curCSSTop = jQuery . css ( elem , "top" ) ;
44
44
curCSSLeft = jQuery . css ( elem , "left" ) ;
45
45
calculatePosition = ( position === "absolute" || position === "fixed" ) &&
@@ -110,6 +110,9 @@ jQuery.fn.extend({
110
110
( docElem . clientLeft || 0 )
111
111
} ;
112
112
}
113
+
114
+ // Return zeros for disconnected and hidden elements (gh-2310)
115
+ return rect ;
113
116
} ,
114
117
115
118
position : function ( ) {
Original file line number Diff line number Diff line change @@ -49,30 +49,24 @@ test("empty set", function() {
49
49
} ) ;
50
50
51
51
test ( "disconnected element" , function ( ) {
52
- expect ( 1 ) ;
53
-
54
- var result ;
52
+ expect ( 2 ) ;
55
53
56
- try {
57
- result = jQuery ( document . createElement ( "div" ) ) . offset ( ) ;
58
- } catch ( e ) { }
54
+ var result = jQuery ( document . createElement ( "div" ) ) . offset ( ) ;
59
55
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)" ) ;
61
58
} ) ;
62
59
63
60
test ( "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 ) ;
68
62
69
- try {
63
+ var node = jQuery ( "<div style='display: none' />" ) . appendTo ( "#qunit-fixture" ) ,
70
64
result = node . offset ( ) ;
71
- } catch ( e ) { }
72
65
73
66
node . remove ( ) ;
74
67
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)" ) ;
76
70
} ) ;
77
71
78
72
testIframe ( "offset/absolute" , "absolute" , function ( $ , iframe ) {
You can’t perform that action at this time.
0 commit comments