30
30
* @constructor
31
31
*/
32
32
function EventQueue ( ) {
33
- this . q = [ ] ;
33
+ var q = [ ] ;
34
34
this . add = function ( ev ) {
35
- this . q . push ( ev ) ;
35
+ q . push ( ev ) ;
36
36
} ;
37
37
38
38
var i , j ;
39
39
this . call = function ( ) {
40
- for ( i = 0 , j = this . q . length ; i < j ; i ++ ) {
41
- this . q [ i ] . call ( ) ;
40
+ for ( i = 0 , j = q . length ; i < j ; i ++ ) {
41
+ q [ i ] . call ( ) ;
42
42
}
43
43
} ;
44
+
45
+ this . remove = function ( ev ) {
46
+ var newQueue = [ ] ;
47
+ for ( i = 0 , j = q . length ; i < j ; i ++ ) {
48
+ if ( q [ i ] !== ev ) newQueue . push ( q [ i ] ) ;
49
+ }
50
+ q = newQueue ;
51
+ }
52
+
53
+ this . length = function ( ) {
54
+ return q . length ;
55
+ }
44
56
}
45
57
46
58
/**
163
175
attachResizeEvent ( element , callback ) ;
164
176
}
165
177
166
- this . detach = function ( ) {
178
+ this . detach = function ( ev ) {
167
179
if ( isCollectionTyped ) {
168
180
var i = 0 , j = element . length ;
169
181
for ( ; i < j ; i ++ ) {
170
- ResizeSensor . detach ( element [ i ] ) ;
182
+ ResizeSensor . detach ( element [ i ] , ev ) ;
171
183
}
172
184
} else {
173
- ResizeSensor . detach ( element ) ;
185
+ ResizeSensor . detach ( element , ev ) ;
174
186
}
175
187
} ;
176
188
} ;
177
189
178
- ResizeSensor . detach = function ( element ) {
190
+ ResizeSensor . detach = function ( element , ev ) {
191
+ if ( typeof ev == "function" ) {
192
+ element . resizedAttached . remove ( ev ) ;
193
+ if ( element . resizedAttached . length ( ) ) return ;
194
+ }
179
195
if ( element . resizeSensor ) {
180
196
element . removeChild ( element . resizeSensor ) ;
181
197
delete element . resizeSensor ;
191
207
window . ResizeSensor = ResizeSensor ;
192
208
}
193
209
194
- } ) ( ) ;
210
+ } ) ( ) ;
0 commit comments