@@ -37,6 +37,12 @@ return $.widget( "ui.tabs", {
37
37
delay : 300 ,
38
38
options : {
39
39
active : null ,
40
+ classes : {
41
+ "ui-tabs" : "ui-corner-all" ,
42
+ "ui-tabs-nav" : "ui-corner-all" ,
43
+ "ui-tab" : "ui-corner-top" ,
44
+ "ui-tabs-panel" : "ui-corner-bottom"
45
+ } ,
40
46
collapsible : false ,
41
47
event : "click" ,
42
48
heightStyle : "content" ,
@@ -77,9 +83,8 @@ return $.widget( "ui.tabs", {
77
83
78
84
this . running = false ;
79
85
80
- this . element
81
- . addClass ( "ui-tabs ui-widget ui-widget-content ui-corner-all" )
82
- . toggleClass ( "ui-tabs-collapsible" , options . collapsible ) ;
86
+ this . _addClass ( "ui-tabs" , "ui-widget ui-widget-content" ) ;
87
+ this . _toggleClass ( "ui-tabs-collapsible" , null , options . collapsible ) ;
83
88
84
89
this . _processTabs ( ) ;
85
90
options . active = this . _initialActive ( ) ;
@@ -286,7 +291,8 @@ return $.widget( "ui.tabs", {
286
291
this . _super ( key , value ) ;
287
292
288
293
if ( key === "collapsible" ) {
289
- this . element . toggleClass ( "ui-tabs-collapsible" , value ) ;
294
+ this . _toggleClass ( "ui-tabs-collapsible" , null , value ) ;
295
+
290
296
// Setting collapsible: false while collapsed; open first panel
291
297
if ( ! value && this . options . active === false ) {
292
298
this . _activate ( 0 ) ;
@@ -362,12 +368,12 @@ return $.widget( "ui.tabs", {
362
368
this . tabs . eq ( 0 ) . attr ( "tabIndex" , 0 ) ;
363
369
} else {
364
370
this . active
365
- . addClass ( "ui-tabs-active ui-state-active" )
366
371
. attr ( {
367
372
"aria-selected" : "true" ,
368
373
"aria-expanded" : "true" ,
369
374
tabIndex : 0
370
375
} ) ;
376
+ this . _addClass ( this . active , "ui-tabs-active" , "ui-state-active" ) ;
371
377
this . _getPanelForTab ( this . active )
372
378
. show ( )
373
379
. attr ( {
@@ -382,11 +388,12 @@ return $.widget( "ui.tabs", {
382
388
prevAnchors = this . anchors ,
383
389
prevPanels = this . panels ;
384
390
385
- this . tablist = this . _getList ( )
386
- . addClass ( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" )
387
- . attr ( "role" , "tablist" )
391
+ this . tablist = this . _getList ( ) . attr ( "role" , "tablist" ) ;
392
+ this . _addClass ( this . tablist , "ui-tabs-nav" ,
393
+ "ui-helper-reset ui-helper-clearfix ui-widget-header" ) ;
388
394
389
- // Prevent users from focusing disabled tabs via click
395
+ // Prevent users from focusing disabled tabs via click
396
+ this . tablist
390
397
. delegate ( "> li" , "mousedown" + this . eventNamespace , function ( event ) {
391
398
if ( $ ( this ) . is ( ".ui-state-disabled" ) ) {
392
399
event . preventDefault ( ) ;
@@ -406,20 +413,20 @@ return $.widget( "ui.tabs", {
406
413
} ) ;
407
414
408
415
this . tabs = this . tablist . find ( "> li:has(a[href])" )
409
- . addClass ( "ui-state-default ui-corner-top" )
410
416
. attr ( {
411
417
role : "tab" ,
412
418
tabIndex : - 1
413
419
} ) ;
420
+ this . _addClass ( this . tabs , "ui-tab" , "ui-state-default" ) ;
414
421
415
422
this . anchors = this . tabs . map ( function ( ) {
416
423
return $ ( "a" , this ) [ 0 ] ;
417
424
} )
418
- . addClass ( "ui-tabs-anchor" )
419
425
. attr ( {
420
426
role : "presentation" ,
421
427
tabIndex : - 1
422
428
} ) ;
429
+ this . _addClass ( this . anchors , "ui-tabs-anchor" ) ;
423
430
424
431
this . panels = $ ( ) ;
425
432
@@ -461,9 +468,8 @@ return $.widget( "ui.tabs", {
461
468
panel . attr ( "aria-labelledby" , anchorId ) ;
462
469
} ) ;
463
470
464
- this . panels
465
- . addClass ( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
466
- . attr ( "role" , "tabpanel" ) ;
471
+ this . panels . attr ( "role" , "tabpanel" ) ;
472
+ this . _addClass ( this . panels , "ui-tabs-panel" , "ui-widget-content" ) ;
467
473
468
474
// Avoid memory leaks (#10056)
469
475
if ( prevTabs ) {
@@ -481,11 +487,12 @@ return $.widget( "ui.tabs", {
481
487
_createPanel : function ( id ) {
482
488
return $ ( "<div>" )
483
489
. attr ( "id" , id )
484
- . addClass ( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
485
490
. data ( "ui-tabs-destroy" , true ) ;
486
491
} ,
487
492
488
493
_setupDisabled : function ( disabled ) {
494
+ var currentItem , li , i ;
495
+
489
496
if ( $ . isArray ( disabled ) ) {
490
497
if ( ! disabled . length ) {
491
498
disabled = false ;
@@ -495,15 +502,14 @@ return $.widget( "ui.tabs", {
495
502
}
496
503
497
504
// disable tabs
498
- for ( var i = 0 , li ; ( li = this . tabs [ i ] ) ; i ++ ) {
505
+ for ( i = 0 ; ( li = this . tabs [ i ] ) ; i ++ ) {
506
+ currentItem = $ ( li ) ;
499
507
if ( disabled === true || $ . inArray ( i , disabled ) !== - 1 ) {
500
- $ ( li )
501
- . addClass ( "ui-state-disabled" )
502
- . attr ( "aria-disabled" , "true" ) ;
508
+ currentItem . attr ( "aria-disabled" , "true" ) ;
509
+ this . _addClass ( currentItem , null , "ui-state-disabled" ) ;
503
510
} else {
504
- $ ( li )
505
- . removeClass ( "ui-state-disabled" )
506
- . removeAttr ( "aria-disabled" ) ;
511
+ currentItem . removeAttr ( "aria-disabled" ) ;
512
+ this . _removeClass ( currentItem , null , "ui-state-disabled" ) ;
507
513
}
508
514
}
509
515
@@ -629,7 +635,7 @@ return $.widget( "ui.tabs", {
629
635
}
630
636
631
637
function show ( ) {
632
- eventData . newTab . closest ( "li" ) . addClass ( "ui-tabs-active ui-state-active" ) ;
638
+ that . _addClass ( eventData . newTab . closest ( "li" ) , "ui-tabs-active" , " ui-state-active" ) ;
633
639
634
640
if ( toShow . length && that . options . show ) {
635
641
that . _show ( toShow , that . options . show , complete ) ;
@@ -642,11 +648,13 @@ return $.widget( "ui.tabs", {
642
648
// start out by hiding, then showing, then completing
643
649
if ( toHide . length && this . options . hide ) {
644
650
this . _hide ( toHide , this . options . hide , function ( ) {
645
- eventData . oldTab . closest ( "li" ) . removeClass ( "ui-tabs-active ui-state-active" ) ;
651
+ that . _removeClass ( eventData . oldTab . closest ( "li" ) ,
652
+ "ui-tabs-active" , "ui-state-active" ) ;
646
653
show ( ) ;
647
654
} ) ;
648
655
} else {
649
- eventData . oldTab . closest ( "li" ) . removeClass ( "ui-tabs-active ui-state-active" ) ;
656
+ this . _removeClass ( eventData . oldTab . closest ( "li" ) ,
657
+ "ui-tabs-active" , "ui-state-active" ) ;
650
658
toHide . hide ( ) ;
651
659
show ( ) ;
652
660
}
@@ -716,27 +724,20 @@ return $.widget( "ui.tabs", {
716
724
this . xhr . abort ( ) ;
717
725
}
718
726
719
- this . element . removeClass ( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" ) ;
720
-
721
727
this . tablist
722
- . removeClass ( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all " )
723
- . removeAttr ( "role" ) ;
728
+ . removeAttr ( "role " )
729
+ . unbind ( this . eventNamespace ) ;
724
730
725
731
this . anchors
726
- . removeClass ( "ui-tabs-anchor" )
727
732
. removeAttr ( "role" )
728
733
. removeAttr ( "tabIndex" )
729
734
. removeUniqueId ( ) ;
730
735
731
- this . tablist . unbind ( this . eventNamespace ) ;
732
-
733
736
this . tabs . add ( this . panels ) . each ( function ( ) {
734
737
if ( $ . data ( this , "ui-tabs-destroy" ) ) {
735
738
$ ( this ) . remove ( ) ;
736
739
} else {
737
740
$ ( this )
738
- . removeClass ( "ui-state-default ui-state-active ui-state-disabled " +
739
- "ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel" )
740
741
. removeAttr ( "tabIndex" )
741
742
. removeAttr ( "aria-live" )
742
743
. removeAttr ( "aria-busy" )
@@ -827,7 +828,7 @@ return $.widget( "ui.tabs", {
827
828
that . panels . stop ( false , true ) ;
828
829
}
829
830
830
- tab . removeClass ( "ui-tabs-loading" ) ;
831
+ that . _removeClass ( tab , "ui-tabs-loading" ) ;
831
832
panel . removeAttr ( "aria-busy" ) ;
832
833
833
834
if ( jqXHR === that . xhr ) {
@@ -846,7 +847,7 @@ return $.widget( "ui.tabs", {
846
847
// jQuery <1.8 returns false if the request is canceled in beforeSend,
847
848
// but as of 1.8, $.ajax() always returns a jqXHR object.
848
849
if ( this . xhr && this . xhr . statusText !== "canceled" ) {
849
- tab . addClass ( "ui-tabs-loading" ) ;
850
+ this . _addClass ( tab , "ui-tabs-loading" ) ;
850
851
panel . attr ( "aria-busy" , "true" ) ;
851
852
852
853
this . xhr
0 commit comments