Skip to content

Commit

Permalink
Accordion: Correct height calculated when closed
Browse files Browse the repository at this point in the history
Fixes #11938
Closes jquerygh-1536
  • Loading branch information
apushak authored and scottgonzalez committed Oct 15, 2015
1 parent 52d9ec6 commit 74f4ff9
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 1 deletion.
19 changes: 18 additions & 1 deletion tests/unit/accordion/accordion.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,16 @@
<script src="../../lib/css.js" data-modules="core accordion"></script>
<script src="../../lib/bootstrap.js" data-widget="accordion"></script>
<style>
#list, #list1 *, #navigation, #navigation * {
#list, #list1 *, #navigation, #navigation *, #collapsible, #collapsible * {
margin: 0;
padding: 0;
font-size: 12px;
line-height: 15px;
}
#collapsibleWrapper {
width: 300px;
float: left;
}
</style>
</head>
<body>
Expand Down Expand Up @@ -109,6 +113,19 @@ <h2><a href="?p=1.1.3">Drums</a></h2>
</dd>
</dl>

<div id="collapsibleWrapper">
<div id="collapsible">
<h3>Header</h3>
<div>
<p>
The calculated height of this accordion should be the same
regardless of whether the accordion was collapsed or not
when the height was calculated.
</p>
</div>
</div>
</div>

</div>
</body>
</html>
13 changes: 13 additions & 0 deletions tests/unit/accordion/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,19 @@ test( "{ active: false }", function() {
strictEqual( element.accordion( "option", "active" ), 0 );
} );

// http://bugs.jqueryui.com/ticket/11938
test( "{ active: false, collapsible: true }", function() {
expect( 1 );
var element = $( "#collapsible" ).accordion(),
content = element.find( ".ui-accordion-content" ),
height = content.height();
element.accordion( "destroy" ).accordion({
active: false,
collapsible: true
});
equal( content.height(), height );
});

test( "{ active: Number }", function() {
expect( 8 );
var element = $( "#list1" ).accordion( {
Expand Down
7 changes: 7 additions & 0 deletions ui/widgets/accordion.js
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,14 @@ return $.widget( "ui.accordion", {
maxHeight = 0;
this.headers.next()
.each( function() {
var isVisible = $( this ).is( ":visible" );
if ( !isVisible ) {
$( this ).show();
}
maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() );
if ( !isVisible ) {
$( this ).hide();
}
} )
.height( maxHeight );
}
Expand Down

0 comments on commit 74f4ff9

Please sign in to comment.