aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/unit/accordion/accordion_options.js15
-rw-r--r--ui/ui.accordion.js6
2 files changed, 20 insertions, 1 deletions
diff --git a/tests/unit/accordion/accordion_options.js b/tests/unit/accordion/accordion_options.js
index bb844f838..00b3dbb8c 100644
--- a/tests/unit/accordion/accordion_options.js
+++ b/tests/unit/accordion/accordion_options.js
@@ -38,7 +38,20 @@ test("{ active: false }", function() {
});
test("{ active: Number }", function() {
- ok(false, 'missing test - untested code is broken code');
+ expect(4);
+ $("#list1").accordion({
+ active: 0
+ });
+ equals( $("#list1").accordion('option', 'active'), 0);
+
+ $("#list1").accordion('option', 'active', 1);
+ equals( $("#list1").accordion('option', 'active'), 1);
+
+ $('.ui-accordion-header:eq(2)', '#list1').click();
+ equals( $("#list1").accordion('option', 'active'), 2);
+
+ $("#list1").accordion('activate', 0);
+ equals( $("#list1").accordion('option', 'active'), 0);
});
test("{ animated: false }, default", function() {
diff --git a/ui/ui.accordion.js b/ui/ui.accordion.js
index f05a3b1a5..1b8337547 100644
--- a/ui/ui.accordion.js
+++ b/ui/ui.accordion.js
@@ -153,6 +153,9 @@ $.widget("ui.accordion", {
$.widget.prototype._setData.apply(this, arguments);
+ if (key == "active") {
+ this.activate(value);
+ }
if (key == "icons") {
this._destroyIcons();
if (value) {
@@ -230,6 +233,7 @@ $.widget("ui.accordion", {
},
activate: function(index) {
+ this.options.active = index;
// call clickHandler with custom event
var active = this._findActive(index)[0];
this._clickHandler({ target: active }, active);
@@ -273,6 +277,8 @@ $.widget("ui.accordion", {
// get the click target
var clicked = $(event.currentTarget || target);
var clickedIsActive = clicked[0] == this.active[0];
+
+ o.active = $('.ui-accordion-header', this.element).index(clicked);
// if animations are still active, or the active header is the target, ignore click
if (this.running || (!o.collapsible && clickedIsActive)) {