J'utilise Twitter Bootstrap pour créer des sections réductibles de texte. Les sections sont développées lorsque vous appuyez sur un bouton +. Mon code html comme suit:
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<button type="button" class="btn btn-primary" data-toggle="collapse" data-target="#demo">
<span class="glyphicon glyphicon-chevron-down"></span> Open
</button>
</h4>
</div>
<div id="demo" class="panel-collapse collapse in">
<div class="panel-body">
Contents:Thank you to help me solve the problem, you're a great guy!
</div>
</div>
</div>
</div>
Plus tard, je dois changer le texte, les icônes de boutons et développer.
Est ouvert:
<button type="button" class="btn btn-primary" data-toggle="collapse" data-target="#demo">
<span class="glyphicon glyphicon-chevron-up"></span> Close
</button>
Est près:
<button type="button" class="btn btn-primary" data-toggle="collapse" data-target="#demo">
<span class="glyphicon glyphicon-chevron-down"></span> Open
</button>
basé sur: https://stackoverflow.com/a/16870379/1596547
$('button span').parent().click(function () {
if($('button span').hasClass('glyphicon-chevron-down'))
{
$('button').html('<span class="glyphicon glyphicon-chevron-up"></span> Close');
}
else
{
$('button').html('<span class="glyphicon glyphicon-chevron-down"></span> Open');
}
});
Il est également possible de faire par styles css.
en css ajouter un style:
.text-toogle[aria-expanded=false] .text-expanded {
display: none;
}
.text-toogle[aria-expanded=true] .text-collapsed {
display: none;
}
et utiliser en html:
<a class="btn btn-default text-toogle" data-toggle="collapse" data-target="#tabsNavigation" aria-expanded="false">
<span class="text-collapsed">More info</span>
<span class="text-expanded">Less info</span>
<i class="fa fa-angle-right"></i>
</a>
N'oubliez pas d'ajouter un attribut
aria-expanded="false"
et classe
text-toogle
pour lier/bouton.
J'ai trouvé cette question et cette réponse utiles. J'ai supprimé la méthode parent () et ajouté un identifiant à mon bouton + pour éviter de modifier les autres boutons lors du basculement de +.
$('#more').click(function () {
if($('button span').hasClass('glyphicon-chevron-down'))
{
$('#more').html('<span class="glyphicon glyphicon-chevron-up"></span> Less Info');
}
else
{
$('#more').html('<span class="glyphicon glyphicon-chevron-down"></span> More Info');
}
});
Si vous utilisez jQuery, utilisez toggleClass
$('div.toggler').click(function(){
$('div.toggler span').toggleClass('glyphicon-chevron-down glyphicon-chevron-up');
});
Travailler JSFiddle ici
utiliser ce javascript pour changer d'icône
$(document).ready(function(){
$("#demo").on("hide.bs.collapse", function(){
$(".btn").html('<span class="glyphicon glyphicon-collapse-down"></span> Open');
});
$("#demo").on("show.bs.collapse", function(){
$(".btn").html('<span class="glyphicon glyphicon-collapse-up"></span> Close');
});
$("#demo1").on("hide.bs.collapse", function(){
$(".btn1").html('<span class="glyphicon glyphicon-collapse-down"></span> Open');
});
$("#demo1").on("show.bs.collapse", function(){
$(".btn1").html('<span class="glyphicon glyphicon-collapse-up"></span> Close');
});
});