@@ -311,13 +311,7 @@ $.widget( "ui.accordion", {
311
311
if ( ! options . collapsible ) {
312
312
return ;
313
313
}
314
- this . active
315
- . removeClass ( "ui-state-active ui-corner-top" )
316
- . addClass ( "ui-state-default ui-corner-all" )
317
- . children ( ".ui-icon" )
318
- . removeClass ( options . icons . headerSelected )
319
- . addClass ( options . icons . header ) ;
320
- this . active . next ( ) . addClass ( "ui-accordion-content-active" ) ;
314
+ // **CHANGE** Moved the class switch to the if statement below
321
315
var toHide = this . active . next ( ) ,
322
316
data = {
323
317
options : options ,
@@ -327,7 +321,16 @@ $.widget( "ui.accordion", {
327
321
oldContent : toHide
328
322
} ,
329
323
toShow = ( this . active = $ ( [ ] ) ) ;
330
- this . _toggle ( toShow , toHide , data ) ;
324
+ // **CHANGE** _toggle now returns a boolean
325
+ if ( this . _toggle ( toShow , toHide , data ) ) {
326
+ this . active
327
+ . removeClass ( "ui-state-active ui-corner-top" )
328
+ . addClass ( "ui-state-default ui-corner-all" )
329
+ . children ( ".ui-icon" )
330
+ . removeClass ( options . icons . headerSelected )
331
+ . addClass ( options . icons . header ) ;
332
+ this . active . next ( ) . addClass ( "ui-accordion-content-active" ) ;
333
+ }
331
334
return ;
332
335
}
333
336
@@ -346,24 +349,8 @@ $.widget( "ui.accordion", {
346
349
return ;
347
350
}
348
351
349
- // switch classes
350
- this . active
351
- . removeClass ( "ui-state-active ui-corner-top" )
352
- . addClass ( "ui-state-default ui-corner-all" )
353
- . children ( ".ui-icon" )
354
- . removeClass ( options . icons . headerSelected )
355
- . addClass ( options . icons . header ) ;
356
- if ( ! clickedIsActive ) {
357
- clicked
358
- . removeClass ( "ui-state-default ui-corner-all" )
359
- . addClass ( "ui-state-active ui-corner-top" )
360
- . children ( ".ui-icon" )
361
- . removeClass ( options . icons . header )
362
- . addClass ( options . icons . headerSelected ) ;
363
- clicked
364
- . next ( )
365
- . addClass ( "ui-accordion-content-active" ) ;
366
- }
352
+ // **CHANGE** moved switch classes to if statement below
353
+
367
354
368
355
// find elements to show and hide
369
356
var toShow = clicked . next ( ) ,
@@ -376,17 +363,41 @@ $.widget( "ui.accordion", {
376
363
oldContent : toHide
377
364
} ,
378
365
down = this . headers . index ( this . active [ 0 ] ) > this . headers . index ( clicked [ 0 ] ) ;
379
-
380
- this . active = clickedIsActive ? $ ( [ ] ) : clicked ;
381
- this . _toggle ( toShow , toHide , data , clickedIsActive , down ) ;
366
+ // **CHANGE** _toggle now returns a boolean
367
+ // **CHANGE** moved setting this.active = clickedIsActive ? $([]) : clicked; to inside the if statement
368
+ if ( this . _toggle ( toShow , toHide , data , clickedIsActive , down ) ) {
369
+ this . active = clickedIsActive ? $ ( [ ] ) : clicked ;
370
+ this . active
371
+ . removeClass ( "ui-state-active ui-corner-top" )
372
+ . addClass ( "ui-state-default ui-corner-all" )
373
+ . children ( ".ui-icon" )
374
+ . removeClass ( options . icons . headerSelected )
375
+ . addClass ( options . icons . header ) ;
376
+ if ( ! clickedIsActive ) {
377
+ clicked
378
+ . removeClass ( "ui-state-default ui-corner-all" )
379
+ . addClass ( "ui-state-active ui-corner-top" )
380
+ . children ( ".ui-icon" )
381
+ . removeClass ( options . icons . header )
382
+ . addClass ( options . icons . headerSelected ) ;
383
+ clicked
384
+ . next ( )
385
+ . addClass ( "ui-accordion-content-active" ) ;
386
+ }
387
+ }
382
388
383
389
return ;
384
390
} ,
385
-
391
+
386
392
_toggle : function ( toShow , toHide , data , clickedIsActive , down ) {
387
393
var self = this ,
388
394
options = self . options ;
389
-
395
+
396
+ // **CHANGE** _toggle now returns a boolean
397
+ // **CHANGE** moved the trigger changestart event
398
+ // **CHANGE** if event.IsPreventDefaulted then return false
399
+ if ( self . _trigger ( "changestart" , null , data ) ) return false ;
400
+
390
401
self . toShow = toShow ;
391
402
self . toHide = toHide ;
392
403
self . data = data ;
@@ -398,9 +409,6 @@ $.widget( "ui.accordion", {
398
409
return self . _completed . apply ( self , arguments ) ;
399
410
} ;
400
411
401
- // trigger changestart event
402
- self . _trigger ( "changestart" , null , self . data ) ;
403
-
404
412
// count elements to animate
405
413
self . running = toHide . size ( ) === 0 ? toShow . size ( ) : toHide . size ( ) ;
406
414
@@ -482,6 +490,9 @@ $.widget( "ui.accordion", {
482
490
tabIndex : 0
483
491
} )
484
492
. focus ( ) ;
493
+
494
+ // **CHANGE** return true so conditions fire correctly.
495
+ return true ;
485
496
} ,
486
497
487
498
_completed : function ( cancel ) {
0 commit comments