我正在寻找一些可折叠的帮助我试图在它们处于活动状态时更改标题上的图标但是似乎无法解决问题,如果我点击另一个标题而不关闭第一个显示正确图标的标题.
这是一个包含我的问题示例的codepen.
http://codepen.io/FPC/pen/xZEWVY
这是我的代码:
<div class="container"> <div class="row"> <div class="col s6"> <ul class="collapsible popout" data-collapsible="accordion"> <li> <div class="collapsible-header"> <i class="material-icons right more">expand_more</i> <i class="material-icons right less" style="display: none">expand_less</i> Article Title </div> <div class="collapsible-body"> <p> Content Snipit </p> </div> </li> <li> <div class="collapsible-header"> <i class="material-icons right more">expand_more</i> <i class="material-icons right less" style="display: none">expand_less</i> Article Title </div> <div class="collapsible-body"> <p> Content Snipit </p> </div> </li> <li> <div class="collapsible-header"> <i class="material-icons right more">expand_more</i> <i class="material-icons right less" style="display: none">expand_less</i> Article Title </div> <div class="collapsible-body"> <p> Content Snipit </p> </div> </li> </ul> </div> </div> </div>
这是我正在使用的JS
$(document).ready(function(){ $( ".collapsible-header" ).click(function() { $(".more",this).toggle() $(".less",this).toggle() }); });
解决方法
你不需要使用javascript
删除javascript并仅使用css
HTML
<ul class="collapsible" data-collapsible="accordion"> <li> <div class="collapsible-header"> <i class="material-icons">expand_less</i>First</div> </li> <li> <div class="collapsible-header"> <i class="material-icons">expand_less</i>Second</div> </li> </ul>
CSS
.collapsible li.active i { -ms-transform: rotate(180deg); /* IE 9 */ -webkit-transform: rotate(180deg); /* Chrome,Safari,Opera */ transform: rotate(180deg); }