Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Tabs: Deprecate enable and disable events. Fixes #7142 Tabs: Deprecat…

…e enable and disable events
  • Loading branch information...
commit e5f081bc1c16c051665eafc22c9a7af3fba456c8 1 parent e7971c9
@petersendidit petersendidit authored
View
2  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-",
View
35 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 ) );
View
33 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);
View
45 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 );
Please sign in to comment.
Something went wrong with that request. Please try again.