accordion: Fix for #4695

This commit is contained in:
Jörn Zaefferer 2009-08-11 18:58:03 +00:00
parent e132c1b363
commit 417d5b29b4
4 changed files with 18 additions and 9 deletions

View File

@ -56,6 +56,7 @@
</div>
</div>
<div id="navigationWrapper">
<ul id="navigation">
<li>
<h2><a href="?p=1.1.1">Guitar</a></h2>
@ -88,6 +89,7 @@
</ul>
</li>
</ul>
</div>
</div>

View File

@ -112,11 +112,19 @@ test("{ event: 'mouseover' }", function() {
});
test("{ fillSpace: false }, default", function() {
ok(false, 'missing test - untested code is broken code');
$("#navigationWrapper").height(500);
$('#navigation').accordion({ fillSpace: false });
equals( $('#navigation > li:eq(0) > ul').height(), 126 );
equals( $('#navigation > li:eq(1) > ul').height(), 126 );
equals( $('#navigation > li:eq(2) > ul').height(), 126 );
});
test("{ fillSpace: true }", function() {
ok(false, 'missing test - untested code is broken code');
$("#navigationWrapper").height(500);
$('#navigation').accordion({ fillSpace: true });
equals( $('#navigation > li:eq(0) > ul').height(), 386 );
equals( $('#navigation > li:eq(1) > ul').height(), 386 );
equals( $('#navigation > li:eq(2) > ul').height(), 386 );
});
test("{ header: '> li > :first-child,> :not(li):even' }, default", function() {

View File

@ -20,11 +20,11 @@
<div style="height: 500px; width: 500px; border: 1px solid red;">
<div id="accordion" style="width:490px;">
<h3><a href="#">Accordion Header 1</a></h3>
<div>
<div style="padding-top: 1em">
Accordion Content 1
</div>
<h3><a href="#">Accordion Header 2</a></h3>
<div>
<div style="padding-top: 3em">
Accordion Content 2
<p>paragraph</p>
<p>paragraph</p>
@ -35,7 +35,7 @@
<p>paragraph</p>
</div>
<h3><a href="#">Accordion Header 3</a></h3>
<div>
<div style="padding-top: 0">
Accordion Content 3
<ul>
<li>list item</li>

View File

@ -216,11 +216,10 @@ $.widget("ui.accordion", {
maxHeight -= $(this).outerHeight(true);
});
var maxPadding = 0;
this.headers.next().each(function() {
maxPadding = Math.max(maxPadding, $(this).innerHeight() - $(this).height());
}).height(Math.max(0, maxHeight - maxPadding))
.css('overflow', 'auto');
var padding = $(this).innerHeight() - $(this).height();
$(this).height(Math.max(0, maxHeight - padding));
}).css('overflow', 'auto');
} else if ( o.autoHeight ) {
maxHeight = 0;