aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Petersen <public@petersendidit.com>2011-03-26 16:12:05 -0400
committerDavid Petersen <public@petersendidit.com>2011-03-26 21:00:45 -0400
commite5f081bc1c16c051665eafc22c9a7af3fba456c8 (patch)
tree3062b542da69ec209b2e905451be3ce68a72334e
parente7971c9077ce1f8e4f9afb123118349544bf1acb (diff)
downloadjquery-ui-e5f081bc1c16c051665eafc22c9a7af3fba456c8.tar.gz
jquery-ui-e5f081bc1c16c051665eafc22c9a7af3fba456c8.zip
Tabs: Deprecate enable and disable events. Fixes #7142 Tabs: Deprecate enable and disable events
-rw-r--r--tests/unit/tabs/tabs_defaults.js2
-rw-r--r--tests/unit/tabs/tabs_deprecated.js35
-rw-r--r--tests/unit/tabs/tabs_events.js33
-rwxr-xr-xui/jquery.ui.tabs.js45
4 files changed, 76 insertions, 39 deletions
diff --git a/tests/unit/tabs/tabs_defaults.js b/tests/unit/tabs/tabs_defaults.js
index 397d81ce6..5a6bc065e 100644
--- a/tests/unit/tabs/tabs_defaults.js
+++ b/tests/unit/tabs/tabs_defaults.js
@@ -7,9 +7,7 @@ var tabs_defaults = {
beforeload: null,
collapsible: false,
cookie: null,
- disable: null,
disabled: false,
- enable: null,
event: "click",
fx: null,
idPrefix: "ui-tabs-",
diff --git a/tests/unit/tabs/tabs_deprecated.js b/tests/unit/tabs/tabs_deprecated.js
index cec689808..ee2dbdc74 100644
--- a/tests/unit/tabs/tabs_deprecated.js
+++ b/tests/unit/tabs/tabs_deprecated.js
@@ -41,4 +41,39 @@ test('spinner', function() {
});
});
+module("tabs (deprecated): enable/disable events");
+
+test('enable', function() {
+ expect(4);
+
+ var uiObj;
+ el = $('#tabs1').tabs({
+ disabled: [ 0, 1 ],
+ enable: function (event, ui) {
+ uiObj = ui;
+ }
+ });
+ el.tabs('enable', 1);
+ ok(uiObj !== undefined, 'trigger callback');
+ equals(uiObj.tab, $('a', el)[1], 'contain tab as DOM anchor element');
+ equals(uiObj.panel, $('div', el)[1], 'contain panel as DOM div element');
+ equals(uiObj.index, 1, 'contain index');
+});
+
+test('disable', function() {
+ expect(4);
+
+ var uiObj;
+ el = $('#tabs1').tabs({
+ disable: function (event, ui) {
+ uiObj = ui;
+ }
+ });
+ el.tabs('disable', 1);
+ ok(uiObj !== undefined, 'trigger callback');
+ equals(uiObj.tab, $('a', el)[1], 'contain tab as DOM anchor element');
+ equals(uiObj.panel, $('div', el)[1], 'contain panel as DOM div element');
+ equals(uiObj.index, 1, 'contain index');
+});
+
}( jQuery ) );
diff --git a/tests/unit/tabs/tabs_events.js b/tests/unit/tabs/tabs_events.js
index 26ea76fb4..56c1360ee 100644
--- a/tests/unit/tabs/tabs_events.js
+++ b/tests/unit/tabs/tabs_events.js
@@ -88,37 +88,4 @@ test('remove', function() {
ok(false, "missing test - untested code is broken code.");
});
-test('enable', function() {
- expect(4);
-
- var uiObj;
- el = $('#tabs1').tabs({
- disabled: [ 0, 1 ],
- enable: function (event, ui) {
- uiObj = ui;
- }
- });
- el.tabs('enable', 1);
- ok(uiObj !== undefined, 'trigger callback');
- equals(uiObj.tab, $('a', el)[1], 'contain tab as DOM anchor element');
- equals(uiObj.panel, $('div', el)[1], 'contain panel as DOM div element');
- equals(uiObj.index, 1, 'contain index');
-});
-
-test('disable', function() {
- expect(4);
-
- var uiObj;
- el = $('#tabs1').tabs({
- disable: function (event, ui) {
- uiObj = ui;
- }
- });
- el.tabs('disable', 1);
- ok(uiObj !== undefined, 'trigger callback');
- equals(uiObj.tab, $('a', el)[1], 'contain tab as DOM anchor element');
- equals(uiObj.panel, $('div', el)[1], 'contain panel as DOM div element');
- equals(uiObj.index, 1, 'contain index');
-});
-
})(jQuery);
diff --git a/ui/jquery.ui.tabs.js b/ui/jquery.ui.tabs.js
index f54b166c9..b7a270fb6 100755
--- a/ui/jquery.ui.tabs.js
+++ b/ui/jquery.ui.tabs.js
@@ -30,9 +30,7 @@ $.widget( "ui.tabs", {
beforeload: null,
cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }
collapsible: false,
- disable: null,
disabled: false,
- enable: null,
event: "click",
fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
idPrefix: "ui-tabs-",
@@ -545,7 +543,6 @@ $.widget( "ui.tabs", {
o.disabled = false;
}
- this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
return this;
},
@@ -569,7 +566,6 @@ $.widget( "ui.tabs", {
o.disabled = true;
}
- this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
}
return this;
@@ -768,6 +764,47 @@ if ( $.uiBackCompat !== false ) {
});
};
}( jQuery, jQuery.ui.tabs.prototype ) );
+
+ // enable/disable events
+ (function( $, prototype ) {
+ $.extend( prototype.options, {
+ enable: null,
+ disable: null
+ });
+
+ var enable = prototype.enable,
+ disable = prototype.disable;
+
+ prototype.enable = function( index ) {
+ var o = this.options,
+ trigger;
+
+ if ( index && o.disabled || ($.isArray( o.disabled ) && $.inArray( index, o.disabled ) !== -1 ) ) {
+ trigger = true;
+ }
+
+ enable.apply( this, arguments );
+
+ if ( trigger ) {
+ this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
+ }
+ };
+
+ prototype.disable = function( index ) {
+ var o = this.options,
+ trigger;
+
+ if ( index && !o.disabled || ($.isArray( o.disabled ) && $.inArray( index, o.disabled ) == -1 ) ) {
+ trigger = true;
+ }
+
+ disable.apply( this, arguments );
+
+ if ( trigger ) {
+ this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
+ }
+ };
+ }( jQuery, jQuery.ui.tabs.prototype ) );
}
})( jQuery );