Tabs: Fixed enabled and disabled methods. Fixes #7142 - Tabs: Deprecate enable and disable events.

This commit is contained in:
Scott González 2011-05-03 06:31:12 -04:00
parent 5e44b3ce88
commit 45c727d75e
2 changed files with 27 additions and 27 deletions

View File

@ -152,39 +152,37 @@ test('selected', function() {
equals(el.tabs('option', 'selected'), 1, 'should select tab'); equals(el.tabs('option', 'selected'), 1, 'should select tab');
}); });
module("tabs (deprecated): events"); module( "tabs (deprecated): events" );
test('enable', function() { test( "enable", function() {
expect(4); expect( 3 );
var uiObj; var element = $( "#tabs1" ).tabs({
el = $('#tabs1').tabs({
disabled: [ 0, 1 ], disabled: [ 0, 1 ],
enable: function (event, ui) { enable: function ( event, ui ) {
uiObj = ui; equals( ui.tab, element.find( ".ui-tabs-nav a" )[ 1 ], "ui.tab" );
equals( ui.panel, element.find( ".ui-tabs-panel" )[ 1 ], "ui.panel" );
equals( ui.index, 1, "ui.index" );
} }
}); });
el.tabs('enable', 1); element.tabs( "enable", 1 );
ok(uiObj !== undefined, 'trigger callback'); // shouldn't trigger event
equals(uiObj.tab, $('a', el)[1], 'contain tab as DOM anchor element'); element.tabs( "enable", 2 );
equals(uiObj.panel, $('div', el)[1], 'contain panel as DOM div element');
equals(uiObj.index, 1, 'contain index');
}); });
test('disable', function() { test( "disable", function() {
expect(4); expect( 3 );
var uiObj; var element = $( "#tabs1" ).tabs({
el = $('#tabs1').tabs({ disable: function ( event, ui ) {
disable: function (event, ui) { equals( ui.tab, element.find( ".ui-tabs-nav a" )[ 1 ], "ui.tab" );
uiObj = ui; equals( ui.panel, element.find( ".ui-tabs-panel" )[ 1 ], "ui.panel" );
equals( ui.index, 1, "ui.index" );
} }
}); });
el.tabs('disable', 1); element.tabs( "disable", 1 );
ok(uiObj !== undefined, 'trigger callback'); // shouldn't trigger event
equals(uiObj.tab, $('a', el)[1], 'contain tab as DOM anchor element'); element.tabs( "disable", 1 );
equals(uiObj.panel, $('div', el)[1], 'contain panel as DOM div element');
equals(uiObj.index, 1, 'contain index');
}); });
test('show', function() { test('show', function() {

10
ui/jquery.ui.tabs.js vendored
View File

@ -783,10 +783,11 @@ if ( $.uiBackCompat !== false ) {
disable = prototype.disable; disable = prototype.disable;
prototype.enable = function( index ) { prototype.enable = function( index ) {
var o = this.options, var options = this.options,
trigger; trigger;
if ( index && o.disabled || ($.isArray( o.disabled ) && $.inArray( index, o.disabled ) !== -1 ) ) { if ( index && options.disabled === true ||
( $.isArray( options.disabled ) && $.inArray( index, options.disabled ) !== -1 ) ) {
trigger = true; trigger = true;
} }
@ -798,10 +799,11 @@ if ( $.uiBackCompat !== false ) {
}; };
prototype.disable = function( index ) { prototype.disable = function( index ) {
var o = this.options, var options = this.options,
trigger; trigger;
if ( index && !o.disabled || ($.isArray( o.disabled ) && $.inArray( index, o.disabled ) == -1 ) ) { if ( index && options.disabled === false ||
( $.isArray( options.disabled ) && $.inArray( index, options.disabled ) === -1 ) ) {
trigger = true; trigger = true;
} }