Skip to content

Commit 088ef05

Browse files
committed
Accordion: Renamed changestart and change events to beforeActivate and activate, respectively. Fixes #6840 - Accordion: Rename changestart event to beforeActivate. Fixes #6842 - Accordion: Rename change event to activate.
1 parent 06d61f5 commit 088ef05

File tree

4 files changed

+124
-16
lines changed

4 files changed

+124
-16
lines changed

tests/unit/accordion/accordion_deprecated.js

+90
Original file line numberDiff line numberDiff line change
@@ -221,4 +221,94 @@ test( "{ navigation: true, navigationFilter: content }", function() {
221221
state( ac, 0, 0, 1 );
222222
});
223223

224+
225+
226+
227+
228+
module( "accordion (deprecated) - changestart/change events", accordionSetupTeardown() );
229+
230+
test( "changestart", function() {
231+
expect( 20 );
232+
var ac = $( "#list1" ).accordion({
233+
active: false,
234+
collapsible: true
235+
});
236+
var headers = ac.find( ".ui-accordion-header" );
237+
var content = ac.find( ".ui-accordion-content" );
238+
239+
ac.one( "accordionchangestart", function( event, ui ) {
240+
equals( ui.oldHeader.size(), 0 );
241+
equals( ui.oldContent.size(), 0 );
242+
equals( ui.newHeader.size(), 1 );
243+
strictEqual( ui.newHeader[ 0 ], headers[ 0 ] );
244+
equals( ui.newContent.size(), 1 );
245+
strictEqual( ui.newContent[ 0 ], content[ 0 ] );
246+
});
247+
ac.accordion( "option", "active", 0 );
248+
249+
ac.one( "accordionchangestart", function( event, ui ) {
250+
equals( ui.oldHeader.size(), 1 );
251+
strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] );
252+
equals( ui.oldContent.size(), 1 );
253+
strictEqual( ui.oldContent[ 0 ], content[ 0 ] );
254+
equals( ui.newHeader.size(), 1 );
255+
strictEqual( ui.newHeader[ 0 ], headers[ 1 ] );
256+
equals( ui.newContent.size(), 1 );
257+
strictEqual( ui.newContent[ 0 ], content[ 1 ] );
258+
});
259+
headers.eq( 1 ).click();
260+
261+
ac.one( "accordionchangestart", function( event, ui ) {
262+
equals( ui.oldHeader.size(), 1 );
263+
strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] );
264+
equals( ui.oldContent.size(), 1 );
265+
strictEqual( ui.oldContent[ 0 ], content[ 1 ] );
266+
equals( ui.newHeader.size(), 0 );
267+
equals( ui.newContent.size(), 0 );
268+
});
269+
ac.accordion( "option", "active", false );
270+
});
271+
272+
test( "change", function() {
273+
expect( 20 );
274+
var ac = $( "#list1" ).accordion({
275+
active: false,
276+
collapsible: true
277+
});
278+
var headers = ac.find( ".ui-accordion-header" );
279+
var content = ac.find( ".ui-accordion-content" );
280+
281+
ac.one( "accordionchange", function( event, ui ) {
282+
equals( ui.oldHeader.size(), 0 );
283+
equals( ui.oldContent.size(), 0 );
284+
equals( ui.newHeader.size(), 1 );
285+
strictEqual( ui.newHeader[ 0 ], headers[ 0 ] );
286+
equals( ui.newContent.size(), 1 );
287+
strictEqual( ui.newContent[ 0 ], content[ 0 ] );
288+
});
289+
ac.accordion( "option", "active", 0 );
290+
291+
ac.one( "accordionchange", function( event, ui ) {
292+
equals( ui.oldHeader.size(), 1 );
293+
strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] );
294+
equals( ui.oldContent.size(), 1 );
295+
strictEqual( ui.oldContent[ 0 ], content[ 0 ] );
296+
equals( ui.newHeader.size(), 1 );
297+
strictEqual( ui.newHeader[ 0 ], headers[ 1 ] );
298+
equals( ui.newContent.size(), 1 );
299+
strictEqual( ui.newContent[ 0 ], content[ 1 ] );
300+
});
301+
headers.eq( 1 ).click();
302+
303+
ac.one( "accordionchange", function( event, ui ) {
304+
equals( ui.oldHeader.size(), 1 );
305+
strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] );
306+
equals( ui.oldContent.size(), 1 );
307+
strictEqual( ui.oldContent[ 0 ], content[ 1 ] );
308+
equals( ui.newHeader.size(), 0 );
309+
equals( ui.newContent.size(), 0 );
310+
});
311+
ac.accordion( "option", "active", false );
312+
});
313+
224314
})(jQuery);

tests/unit/accordion/accordion_events.js

+8-8
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
module( "accordion: events", accordionSetupTeardown() );
44

5-
test( "changestart", function() {
5+
test( "beforeActivate", function() {
66
expect( 20 );
77
var ac = $( "#list1" ).accordion({
88
active: false,
@@ -11,7 +11,7 @@ test( "changestart", function() {
1111
var headers = ac.find( ".ui-accordion-header" );
1212
var content = ac.find( ".ui-accordion-content" );
1313

14-
ac.one( "accordionchangestart", function( event, ui ) {
14+
ac.one( "accordionbeforeactivate", function( event, ui ) {
1515
equals( ui.oldHeader.size(), 0 );
1616
equals( ui.oldContent.size(), 0 );
1717
equals( ui.newHeader.size(), 1 );
@@ -21,7 +21,7 @@ test( "changestart", function() {
2121
});
2222
ac.accordion( "option", "active", 0 );
2323

24-
ac.one( "accordionchangestart", function( event, ui ) {
24+
ac.one( "accordionbeforeactivate", function( event, ui ) {
2525
equals( ui.oldHeader.size(), 1 );
2626
strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] );
2727
equals( ui.oldContent.size(), 1 );
@@ -33,7 +33,7 @@ test( "changestart", function() {
3333
});
3434
headers.eq( 1 ).click();
3535

36-
ac.one( "accordionchangestart", function( event, ui ) {
36+
ac.one( "accordionbeforeactivate", function( event, ui ) {
3737
equals( ui.oldHeader.size(), 1 );
3838
strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] );
3939
equals( ui.oldContent.size(), 1 );
@@ -44,7 +44,7 @@ test( "changestart", function() {
4444
ac.accordion( "option", "active", false );
4545
});
4646

47-
test( "change", function() {
47+
test( "activate", function() {
4848
expect( 20 );
4949
var ac = $( "#list1" ).accordion({
5050
active: false,
@@ -53,7 +53,7 @@ test( "change", function() {
5353
var headers = ac.find( ".ui-accordion-header" );
5454
var content = ac.find( ".ui-accordion-content" );
5555

56-
ac.one( "accordionchange", function( event, ui ) {
56+
ac.one( "accordionactivate", function( event, ui ) {
5757
equals( ui.oldHeader.size(), 0 );
5858
equals( ui.oldContent.size(), 0 );
5959
equals( ui.newHeader.size(), 1 );
@@ -63,7 +63,7 @@ test( "change", function() {
6363
});
6464
ac.accordion( "option", "active", 0 );
6565

66-
ac.one( "accordionchange", function( event, ui ) {
66+
ac.one( "accordionactivate", function( event, ui ) {
6767
equals( ui.oldHeader.size(), 1 );
6868
strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] );
6969
equals( ui.oldContent.size(), 1 );
@@ -75,7 +75,7 @@ test( "change", function() {
7575
});
7676
headers.eq( 1 ).click();
7777

78-
ac.one( "accordionchange", function( event, ui ) {
78+
ac.one( "accordionactivate", function( event, ui ) {
7979
equals( ui.oldHeader.size(), 1 );
8080
strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] );
8181
equals( ui.oldContent.size(), 1 );

tests/unit/testsuite.js

+7-5
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,14 @@ var privateMethods = [
3434
];
3535

3636
function testWidgetOverrides( widget ) {
37-
test( "$.widget overrides", function() {
38-
$.each( privateMethods, function( i, method ) {
39-
strictEqual( $.ui[ widget ].prototype[ method ],
40-
$.Widget.prototype[ method ], "should not override " + method );
37+
if ( $.uiBackCompat === false ) {
38+
test( "$.widget overrides", function() {
39+
$.each( privateMethods, function( i, method ) {
40+
strictEqual( $.ui[ widget ].prototype[ method ],
41+
$.Widget.prototype[ method ], "should not override " + method );
42+
});
4143
});
42-
});
44+
}
4345
}
4446

4547
function testBasicUsage( widget ) {

ui/jquery.ui.accordion.js

+19-3
Original file line numberDiff line numberDiff line change
@@ -381,8 +381,7 @@ $.widget( "ui.accordion", {
381381
return self._completed.apply( self, arguments );
382382
};
383383

384-
// trigger changestart event
385-
self._trigger( "changestart", null, self.data );
384+
self._trigger( "beforeActivate", null, self.data );
386385

387386
// count elements to animate
388387
self.running = toHide.size() === 0 ? toShow.size() : toHide.size();
@@ -487,7 +486,7 @@ $.widget( "ui.accordion", {
487486
this.toHide.parent()[0].className = this.toHide.parent()[0].className;
488487
}
489488

490-
this._trigger( "change", null, this.data );
489+
this._trigger( "activate", null, this.data );
491490
}
492491
});
493492

@@ -711,6 +710,23 @@ if ( $.uiBackCompat !== false ) {
711710

712711
// resize method
713712
jQuery.ui.accordion.prototype.resize = jQuery.ui.accordion.prototype.refresh;
713+
714+
(function( $, prototype ) {
715+
var _trigger = prototype._trigger;
716+
prototype._trigger = function( type, event, data ) {
717+
var ret = _trigger.apply( this, arguments );
718+
if ( !ret ) {
719+
return false;
720+
}
721+
722+
if ( type === "beforeActivate" ) {
723+
ret = _trigger.call( this, "changestart", event, data );
724+
} else if ( type === "activate" ) {
725+
ret = _trigger.call( this, "change", event, data );
726+
}
727+
return ret;
728+
}
729+
}( jQuery, jQuery.ui.accordion.prototype ) );
714730
}
715731

716732
})( jQuery );

0 commit comments

Comments
 (0)