@@ -29,6 +29,16 @@ return $.widget( "ui.tabs", {
29
29
delay : 300 ,
30
30
options : {
31
31
active : null ,
32
+ classes : {
33
+ "ui-tabs" : "ui-corner-all" ,
34
+ "ui-tabs-collapsible" : "" ,
35
+ "ui-tabs-active" : "" ,
36
+ "ui-tabs-nav" : "ui-corner-all" ,
37
+ "ui-tab" : "ui-corner-top" ,
38
+ "ui-tabs-anchor" : "" ,
39
+ "ui-tabs-panel" : "ui-corner-bottom" ,
40
+ "ui-tabs-loading" : ""
41
+ } ,
32
42
collapsible : false ,
33
43
event : "click" ,
34
44
heightStyle : "content" ,
@@ -69,9 +79,8 @@ return $.widget( "ui.tabs", {
69
79
70
80
this . running = false ;
71
81
72
- this . element
73
- . addClass ( "ui-tabs ui-widget ui-widget-content ui-corner-all" )
74
- . toggleClass ( "ui-tabs-collapsible" , options . collapsible ) ;
82
+ this . _addClass ( "ui-tabs" , "ui-widget ui-widget-content" ) ;
83
+ this [ ( options . collapsible ? "_add" : "_remove" ) + "Class" ] ( "ui-tabs-collapsible" ) ;
75
84
76
85
this . _processTabs ( ) ;
77
86
options . active = this . _initialActive ( ) ;
@@ -278,7 +287,7 @@ return $.widget( "ui.tabs", {
278
287
this . _super ( key , value ) ;
279
288
280
289
if ( key === "collapsible" ) {
281
- this . element . toggleClass ( " ui-tabs-collapsible", value ) ;
290
+ this [ ( value ? "_add" : "_remove" ) + "Class" ] ( " ui-tabs-collapsible" ) ;
282
291
// Setting collapsible: false while collapsed; open first panel
283
292
if ( ! value && this . options . active === false ) {
284
293
this . _activate ( 0 ) ;
@@ -354,12 +363,13 @@ return $.widget( "ui.tabs", {
354
363
this . tabs . eq ( 0 ) . attr ( "tabIndex" , 0 ) ;
355
364
} else {
356
365
this . active
357
- . addClass ( "ui-tabs-active ui-state-active" )
358
366
. attr ( {
359
367
"aria-selected" : "true" ,
360
368
"aria-expanded" : "true" ,
361
369
tabIndex : 0
362
370
} ) ;
371
+
372
+ this . _addClass ( this . active , "ui-tabs-active" , "ui-state-active" ) ;
363
373
this . _getPanelForTab ( this . active )
364
374
. show ( )
365
375
. attr ( {
@@ -374,12 +384,13 @@ return $.widget( "ui.tabs", {
374
384
prevAnchors = this . anchors ,
375
385
prevPanels = this . panels ;
376
386
377
- this . tablist = this . _getList ( )
378
- . addClass ( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" )
379
- . attr ( "role" , "tablist" )
387
+ this . tablist = this . _getList ( ) . attr ( "role" , "tablist" ) ;
388
+
389
+ this . _addClass ( this . tablist , "ui-tabs-nav" ,
390
+ "ui-helper-reset ui-helper-clearfix ui-widget-header" ) ;
380
391
381
392
// Prevent users from focusing disabled tabs via click
382
- . delegate ( "> li" , "mousedown" + this . eventNamespace , function ( event ) {
393
+ this . tablist . delegate ( "> li" , "mousedown" + this . eventNamespace , function ( event ) {
383
394
if ( $ ( this ) . is ( ".ui-state-disabled" ) ) {
384
395
event . preventDefault ( ) ;
385
396
}
@@ -398,21 +409,20 @@ return $.widget( "ui.tabs", {
398
409
} ) ;
399
410
400
411
this . tabs = this . tablist . find ( "> li:has(a[href])" )
401
- . addClass ( "ui-state-default ui-corner-top" )
402
412
. attr ( {
403
413
role : "tab" ,
404
414
tabIndex : - 1
405
415
} ) ;
416
+ this . _addClass ( this . tabs , "ui-tab" , "ui-state-default" ) ;
406
417
407
418
this . anchors = this . tabs . map ( function ( ) {
408
419
return $ ( "a" , this ) [ 0 ] ;
409
420
} )
410
- . addClass ( "ui-tabs-anchor" )
411
421
. attr ( {
412
422
role : "presentation" ,
413
423
tabIndex : - 1
414
424
} ) ;
415
-
425
+ this . _addClass ( this . anchors , "ui-tabs-anchor" ) ;
416
426
this . panels = $ ( ) ;
417
427
418
428
this . anchors . each ( function ( i , anchor ) {
@@ -453,9 +463,8 @@ return $.widget( "ui.tabs", {
453
463
panel . attr ( "aria-labelledby" , anchorId ) ;
454
464
} ) ;
455
465
456
- this . panels
457
- . addClass ( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
458
- . attr ( "role" , "tabpanel" ) ;
466
+ this . panels . attr ( "role" , "tabpanel" ) ;
467
+ this . _addClass ( this . panels , "ui-tabs-panel" , "ui-widget-content" ) ;
459
468
460
469
// Avoid memory leaks (#10056)
461
470
if ( prevTabs ) {
@@ -471,10 +480,7 @@ return $.widget( "ui.tabs", {
471
480
} ,
472
481
473
482
_createPanel : function ( id ) {
474
- return $ ( "<div>" )
475
- . attr ( "id" , id )
476
- . addClass ( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
477
- . data ( "ui-tabs-destroy" , true ) ;
483
+ return $ ( "<div>" ) . attr ( "id" , id ) . data ( "ui-tabs-destroy" , true ) ;
478
484
} ,
479
485
480
486
_setupDisabled : function ( disabled ) {
@@ -621,7 +627,7 @@ return $.widget( "ui.tabs", {
621
627
}
622
628
623
629
function show ( ) {
624
- eventData . newTab . closest ( "li" ) . addClass ( "ui-tabs-active ui-state-active" ) ;
630
+ that . _addClass ( eventData . newTab . closest ( "li" ) , "ui-tabs-active" , " ui-state-active" ) ;
625
631
626
632
if ( toShow . length && that . options . show ) {
627
633
that . _show ( toShow , that . options . show , complete ) ;
@@ -634,11 +640,13 @@ return $.widget( "ui.tabs", {
634
640
// start out by hiding, then showing, then completing
635
641
if ( toHide . length && this . options . hide ) {
636
642
this . _hide ( toHide , this . options . hide , function ( ) {
637
- eventData . oldTab . closest ( "li" ) . removeClass ( "ui-tabs-active ui-state-active" ) ;
643
+ that . _removeClass ( eventData . oldTab . closest ( "li" ) ,
644
+ "ui-tabs-active" , "ui-state-active" ) ;
638
645
show ( ) ;
639
646
} ) ;
640
647
} else {
641
- eventData . oldTab . closest ( "li" ) . removeClass ( "ui-tabs-active ui-state-active" ) ;
648
+ this . _removeClass ( eventData . oldTab . closest ( "li" ) ,
649
+ "ui-tabs-active" , "ui-state-active" ) ;
642
650
toHide . hide ( ) ;
643
651
show ( ) ;
644
652
}
@@ -704,31 +712,25 @@ return $.widget( "ui.tabs", {
704
712
} ,
705
713
706
714
_destroy : function ( ) {
715
+ var that = this ;
707
716
if ( this . xhr ) {
708
717
this . xhr . abort ( ) ;
709
718
}
710
719
711
- this . element . removeClass ( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" ) ;
712
-
713
- this . tablist
714
- . removeClass ( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" )
715
- . removeAttr ( "role" ) ;
720
+ this . _removeClass ( "ui-tabs ui-tabs-collapsible" , "ui-widget ui-widget-content" ) ;
721
+ this . _removeClass ( this . tablist , "ui-tabs-nav" ,
722
+ "ui-helper-reset ui-helper-clearfix ui-widget-header" ) ;
723
+ this . _removeClass ( this . anchors , "ui-tabs-anchor" ) ;
716
724
717
- this . anchors
718
- . removeClass ( "ui-tabs-anchor" )
719
- . removeAttr ( "role" )
720
- . removeAttr ( "tabIndex" )
721
- . removeUniqueId ( ) ;
725
+ this . tablist . removeAttr ( "role" ) . unbind ( this . eventNamespace ) ;
722
726
723
- this . tablist . unbind ( this . eventNamespace ) ;
727
+ this . anchors . removeAttr ( "role" ) . removeAttr ( "tabIndex" ) . removeUniqueId ( ) ;
724
728
725
729
this . tabs . add ( this . panels ) . each ( function ( ) {
726
730
if ( $ . data ( this , "ui-tabs-destroy" ) ) {
727
731
$ ( this ) . remove ( ) ;
728
732
} else {
729
733
$ ( this )
730
- . removeClass ( "ui-state-default ui-state-active ui-state-disabled " +
731
- "ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel" )
732
734
. removeAttr ( "tabIndex" )
733
735
. removeAttr ( "aria-live" )
734
736
. removeAttr ( "aria-busy" )
@@ -737,6 +739,8 @@ return $.widget( "ui.tabs", {
737
739
. removeAttr ( "aria-hidden" )
738
740
. removeAttr ( "aria-expanded" )
739
741
. removeAttr ( "role" ) ;
742
+ that . _removeClass ( $ ( this ) , "ui-tabs-active ui-tab ui-tabs-panel" ,
743
+ "ui-state-default ui-state-active ui-state-disabled ui-widget-content" ) ;
740
744
}
741
745
} ) ;
742
746
@@ -826,7 +830,7 @@ return $.widget( "ui.tabs", {
826
830
// jQuery <1.8 returns false if the request is canceled in beforeSend,
827
831
// but as of 1.8, $.ajax() always returns a jqXHR object.
828
832
if ( this . xhr && this . xhr . statusText !== "canceled" ) {
829
- tab . addClass ( "ui-tabs-loading" ) ;
833
+ this . _addClass ( tab , "ui-tabs-loading" ) ;
830
834
panel . attr ( "aria-busy" , "true" ) ;
831
835
832
836
this . xhr
@@ -846,7 +850,7 @@ return $.widget( "ui.tabs", {
846
850
that . panels . stop ( false , true ) ;
847
851
}
848
852
849
- tab . removeClass ( "ui-tabs-loading" ) ;
853
+ that . _removeClass ( tab , "ui-tabs-loading" ) ;
850
854
panel . removeAttr ( "aria-busy" ) ;
851
855
852
856
if ( jqXHR === that . xhr ) {
0 commit comments