From: Richard Worth Date: Tue, 11 Aug 2009 00:45:01 +0000 (+0000) Subject: Fixed accordion option active getter and setter. Normalized getter to number, 0-based... X-Git-Tag: 1.8a1~8 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=7b506cf2aecb8c8988b95b0e59b8593fd1c484bd;p=jquery-ui.git Fixed accordion option active getter and setter. Normalized getter to number, 0-based index. --- 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)) {