J'utilise bootstrap 4 alpha 6 version. Dans ma page j'ai plusieurs blocs d'effondrement. Je veux changer d'icône lorsque l'utilisateur ouvre/ferme ce bloc. Comme j'ai plusieurs de ces blocs, j'ai utilisé la classe mais ça n'a pas marché. Quel est le problème que j'ai fait? P.S. Lorsque j'utilise id dans JS fonctionne bien, mais comme vous le voyez, j'ai plusieurs bloc de collapse et ne veulent pas "copier & coller".Bootstrap 4 changer l'icône dans l'effondrement
html:
<div class="card">
<div class="card-header">
<div class="d-flex align-items-center justify-content-between">
<button data-toggle="collapse" data-target="#collapse-projects" aria-expanded="false" aria-controls="collapse-projects">
<i class="fa fa-eye" aria-hidden="true"></i>
</button>
</div>
</div>
<div class="card-block">
<div class="collapse" id="collapse-projects">
***SOME CONTENT***
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<div class="d-flex align-items-center justify-content-between">
<button data-toggle="collapse" data-target="#collapse-tasks" aria-expanded="false" aria-controls="collapse-tasks">
<i class="fa fa-eye" aria-hidden="true"></i>
</button>
</div>
</div>
<div class="card-block">
<div class="collapse" id="collapse-tasks">
***SOME CONTENT***
</div>
</div>
</div>
JS:
$(document).ready(function() {
$('.collapse')
.on('shown.bs.collapse', function() {
$(this)
.parent()
.find(".fa-eye")
.removeClass("fa-eye")
.addClass("fa-eye-slash");
})
.on('hidden.bs.collapse', function() {
$(this)
.parent()
.find(".fa-eye-slash")
.removeClass("fa-eye-slash")
.addClass("fa-eye");
});
});
Cela fonctionne très bien dans votre exemple, mais quand je l'ai essayé dans mon projet, ça n'a pas marché. Je l'ai utilisé dans différents niveaux DOM. Je mets à jour mon code en post. Peux-tu le vérifier? –
@NurzhanNogerbek votre extrait de code fonctionne bien, s'il vous plaît vérifier https://jsfiddle.net/cshao/j6xsrucm/1/ Je viens de copier et coller votre code HTML et js. S'il vous plaît noter Bootstrap CSS et JS, FontAwesome JS devrait être importé. – shaochuancs
Eh bien, je n'ai pas montré certaines parties parce que je pensais qu'elles ne sont pas importantes (carte-en-tête, carte-bloc, d-flex), mais maintenant quand j'ai vérifié le code dans jsfiddle.net cela ne fonctionne pas. Regardez mon message à nouveau pls. Son code complet. Avez-vous des idées maintenant? –