aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/accordion.js30
-rw-r--r--ui/ui.accordion.js7
2 files changed, 33 insertions, 4 deletions
diff --git a/tests/accordion.js b/tests/accordion.js
index e957acd43..ff3719b41 100644
--- a/tests/accordion.js
+++ b/tests/accordion.js
@@ -99,4 +99,34 @@ test("handle click on header-descendant", function() {
state2(ac, 0, 1, 0);
});
+test("active:false", function() {
+ $("#list1").accordion({
+ active: false,
+ alwaysOpen: false
+ });
+ equals( $("#list1 a.selected").size(), 0, "no headers selected" );
+});
+
+test("accordionchange event, open closed and close again", function() {
+ expect(8);
+ $("#list1").accordion({
+ active: false,
+ alwaysOpen: false
+ })
+ .one("accordionchange", function(event, ui) {
+ equals( ui.oldHeader.size(), 0 )
+ equals( ui.oldContent.size(), 0 )
+ equals( ui.newHeader.size(), 1 )
+ equals( ui.newContent.size(), 1 )
+ })
+ .accordion("activate", 0)
+ .one("accordionchange", function(event, ui) {
+ equals( ui.oldHeader.size(), 1 )
+ equals( ui.oldContent.size(), 1 )
+ equals( ui.newHeader.size(), 0 )
+ equals( ui.newContent.size(), 0 )
+ })
+ .accordion("activate", 0);
+});
+
})(jQuery);
diff --git a/ui/ui.accordion.js b/ui/ui.accordion.js
index 2cf014b8e..4865c317e 100644
--- a/ui/ui.accordion.js
+++ b/ui/ui.accordion.js
@@ -201,12 +201,11 @@ function clickHandler(event) {
// find elements to show and hide
var toShow = clicked.next(),
toHide = options.active.next(),
- //data = [clicked, options.active, toShow, toHide],
data = {
options: options,
- newHeader: clicked,
+ newHeader: clickedActive && !options.alwaysOpen ? $([]) : clicked,
oldHeader: options.active,
- newContent: toShow,
+ newContent: clickedActive && !options.alwaysOpen ? $([]) : toShow,
oldContent: toHide
},
down = options.headers.index( options.active[0] ) > options.headers.index( clicked[0] );
@@ -218,7 +217,7 @@ function clickHandler(event) {
};
function findActive(headers, selector) {
- return selector != undefined
+ return selector
? typeof selector == "number"
? headers.filter(":eq(" + selector + ")")
: headers.not(headers.not(selector))