Skip to content

Commit 8b23483

Browse files
committed
Accordion: First pass at deprecating the activate method. Renamed _clickHandler to _eventHandler and removed extraneous parameter. Updated all tests to use the option methods instead of the activate method.
1 parent b6ed932 commit 8b23483

File tree

5 files changed

+19
-20
lines changed

5 files changed

+19
-20
lines changed

tests/unit/accordion/accordion_core.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ test("ui-accordion-heading class added to headers anchor", function() {
2222

2323
test("accessibility", function () {
2424
expect(9);
25-
var ac = $('#list1').accordion().accordion("activate", 1);
25+
var ac = $('#list1').accordion().accordion("option", "active", 1);
2626
var headers = $(".ui-accordion-header");
2727

2828
equals( headers.eq(1).attr("tabindex"), "0", "active header should have tabindex=0");
@@ -32,7 +32,7 @@ test("accessibility", function () {
3232
equals( headers.next().attr("role"), "tabpanel", "tabpanel roles");
3333
equals( headers.eq(1).attr("aria-expanded"), "true", "active tab has aria-expanded");
3434
equals( headers.eq(0).attr("aria-expanded"), "false", "inactive tab has aria-expanded");
35-
ac.accordion("activate", 0);
35+
ac.accordion("option", "active", 0);
3636
equals( headers.eq(0).attr("aria-expanded"), "true", "newly active tab has aria-expanded");
3737
equals( headers.eq(1).attr("aria-expanded"), "false", "newly inactive tab has aria-expanded");
3838
});

tests/unit/accordion/accordion_events.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ test("accordionchange event, open closed and close again", function() {
1717
equals( ui.newHeader.size(), 1 );
1818
equals( ui.newContent.size(), 1 );
1919
})
20-
.accordion("activate", 0)
20+
.accordion("option", "active", 0)
2121
.one("accordionchange", function(event, ui) {
2222
equals( ui.oldHeader.size(), 1 );
2323
equals( ui.oldContent.size(), 1 );
2424
equals( ui.newHeader.size(), 0 );
2525
equals( ui.newContent.size(), 0 );
2626
})
27-
.accordion("activate", 0);
27+
.accordion("option", "active", 0);
2828
});
2929

3030
})(jQuery);

tests/unit/accordion/accordion_methods.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ test("disable", function() {
5050
equals(actual, expected, 'disable is chainable');
5151

5252
state(expected, 1, 0, 0)
53-
expected.accordion("activate", 1);
53+
expected.accordion("option", "active", 1);
5454
state(expected, 1, 0, 0)
5555
expected.accordion("enable");
56-
expected.accordion("activate", 1);
56+
expected.accordion("option", "active", 1);
5757
state(expected, 0, 1, 0)
5858
});
5959

tests/unit/accordion/accordion_options.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ test("{ active: Number }", function() {
6161
$('.ui-accordion-header:eq(2)', '#list1').click();
6262
equals( $("#list1").accordion('option', 'active'), 2);
6363

64-
$("#list1").accordion('activate', 0);
64+
$("#list1").accordion('option', 'active', 0);
6565
equals( $("#list1").accordion('option', 'active'), 0);
6666
});
6767

@@ -96,7 +96,7 @@ test("{ heightStyle: 'content' }", function() {
9696
});
9797
test("{ collapsible: false }, default", function() {
9898
var ac = $("#list1").accordion();
99-
ac.accordion("activate", false);
99+
ac.accordion("option", "active", false);
100100
state(ac, 1, 0, 0);
101101
});
102102

ui/jquery.ui.accordion.js

+11-12
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ $.widget( "ui.accordion", {
120120

121121
if ( options.event ) {
122122
self.headers.bind( options.event.split(" ").join(".accordion ") + ".accordion", function(event) {
123-
self._clickHandler.call( self, event, this );
123+
self._eventHandler( event );
124124
event.preventDefault();
125125
});
126126
}
@@ -176,7 +176,7 @@ $.widget( "ui.accordion", {
176176
$.Widget.prototype._setOption.apply( this, arguments );
177177

178178
if ( key == "active" ) {
179-
this.activate( value );
179+
this._activate( value );
180180
}
181181
if ( key == "icons" ) {
182182
this._destroyIcons();
@@ -213,7 +213,7 @@ $.widget( "ui.accordion", {
213213
break;
214214
case keyCode.SPACE:
215215
case keyCode.ENTER:
216-
this._clickHandler( { target: event.target }, event.target );
216+
this._eventHandler( event );
217217
event.preventDefault();
218218
}
219219

@@ -272,14 +272,11 @@ $.widget( "ui.accordion", {
272272
return this;
273273
},
274274

275-
activate: function( index ) {
276-
// TODO this gets called on init, changing the option without an explicit call for that
275+
_activate: function( index ) {
276+
// TODO: handle invalid values
277277
this.options.active = index;
278-
// call clickHandler with custom event
279278
var active = this._findActive( index )[ 0 ];
280-
this._clickHandler( { target: active }, active );
281-
282-
return this;
279+
this._eventHandler( { target: active, currentTarget: active } );
283280
},
284281

285282
_findActive: function( selector ) {
@@ -292,8 +289,7 @@ $.widget( "ui.accordion", {
292289
: this.headers.filter( ":eq(0)" );
293290
},
294291

295-
// TODO isn't event.target enough? why the separate target argument?
296-
_clickHandler: function( event, target ) {
292+
_eventHandler: function( event ) {
297293
var options = this.options;
298294
if ( options.disabled ) {
299295
return;
@@ -325,7 +321,7 @@ $.widget( "ui.accordion", {
325321
}
326322

327323
// get the click target
328-
var clicked = $( event.currentTarget || target ),
324+
var clicked = $( event.currentTarget ),
329325
clickedIsActive = clicked[0] === this.active[0];
330326

331327
// TODO the option is changed, is that correct?
@@ -683,4 +679,7 @@ $.extend( $.ui.accordion, {
683679
};
684680
}( jQuery, jQuery.ui.accordion.prototype ) );
685681

682+
// activate method
683+
jQuery.ui.accordion.prototype.activate = jQuery.ui.accordion.prototype._activate;
684+
686685
})( jQuery );

0 commit comments

Comments
 (0)