@@ -30,10 +30,12 @@ var nette = function () {
30
30
fire : function ( ) {
31
31
var result = true ;
32
32
var args = Array . prototype . slice . call ( arguments ) ;
33
- var name = args . shift ( ) ;
33
+ var props = args . shift ( ) ;
34
+ var name = ( typeof props == 'string' ) ? props : props . name ;
35
+ var off = ( typeof props == 'object' ) ? props . off || { } : { } ;
34
36
args . push ( inner . self ) ;
35
37
$ . each ( inner . on [ name ] , function ( index , reaction ) {
36
- if ( reaction === undefined ) return true ;
38
+ if ( reaction === undefined || $ . inArray ( index , off ) !== - 1 ) return true ;
37
39
var temp = reaction . apply ( inner . contexts [ index ] , args ) ;
38
40
return result = ( temp === undefined || temp ) ;
39
41
} ) ;
@@ -169,20 +171,40 @@ var nette = function () {
169
171
if ( ! settings . type ) {
170
172
settings . type = analyze . form ? analyze . form . attr ( 'method' ) : 'get' ;
171
173
}
174
+
175
+ if ( $el . is ( '[data-ajax-off]' ) ) {
176
+ settings . off = $el . data ( 'ajaxOff' ) ;
177
+ if ( typeof settings . off == 'string' ) setting . off = [ settings . off ] ;
178
+ }
172
179
}
173
180
174
- if ( ! inner . fire ( 'before' , settings , ui , e ) ) return ;
181
+ if ( ! inner . fire ( {
182
+ name : 'before' ,
183
+ off : settings . off || { }
184
+ } , settings , ui , e ) ) return ;
175
185
176
186
return $ . ajax ( $ . extend ( {
177
187
beforeSend : function ( xhr ) {
178
- return inner . fire ( 'start' , xhr ) ;
188
+ return inner . fire ( {
189
+ name : 'start' ,
190
+ off : settings . off || { }
191
+ } , xhr ) ;
179
192
}
180
193
} , settings ) ) . done ( function ( payload ) {
181
- inner . fire ( 'success' , payload ) ;
194
+ inner . fire ( {
195
+ name : 'success' ,
196
+ off : settings . off || { }
197
+ } , payload ) ;
182
198
} ) . fail ( function ( xhr , status , error ) {
183
- inner . fire ( 'error' , xhr , status , error ) ;
199
+ inner . fire ( {
200
+ name :'error' ,
201
+ off : settings . off || { }
202
+ } , xhr , status , error ) ;
184
203
} ) . always ( function ( ) {
185
- inner . fire ( 'complete' ) ;
204
+ inner . fire ( {
205
+ name : 'complete' ,
206
+ off : settings . off || { }
207
+ } ) ;
186
208
} ) ;
187
209
} ;
188
210
} ;
0 commit comments