J'ai regardé beaucoup de questions sur ce sujet et il y a des réponses similaires qui devraient fonctionner, mais cela ne fonctionne pas pour moi. J'admets que DOM traversal n'est pas mon point fort, donc si vous avez une solution et que vous pouvez donner un peu de contexte, cela m'aiderait vraiment à comprendre pourquoi les autres solutions ne fonctionnaient pas.La bascule de glissière ne s'activera pas sur la classe
J'ai un div avec un bouton et sur un clic de bouton (ce bouton apparaît seulement sur mobile) il devrait glisser vers le bas seulement le contenu div actuel. Je peux obtenir cela au travail, mais le problème est qu'il ouvre tout le contenu divs. Je ne peux cependant pas l'obtenir pour ouvrir la carte spécifique même en utilisant des solutions telles que $ (this), $ (next), $ (prev) ou $ (find).
Le code que je poste ci-dessous ne l'ouvre pas du tout, et j'utilise cette version du code car elle ressemble beaucoup aux réponses sur Stack Overflow.
$(document).ready(function(){
\t
\t $('.mobile-icon').on('click', function(){
\t \t event.preventDefault();
\t \t $(this).next().find('.card-bottom').slideToggle();
\t \t console.log('hi there'); //this does print
\t });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- FIRST CARD -->
<div class="card">
<div class="card-top">
\t <h1 class="card-title">Headline</h1>
\t \t <a href="#" class="mobile-icon"> <span class="glyphicon glyphicon-plus"></span> </a>
\t \t <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.</p>
\t </div>
\t <!-- END CARD-TOP -->
\t \t \t \t
<div class="card-bottom">
\t <p>Content to be toggled</p>
\t </div>
<!-- END CARD BOTTOM -->
</div>
<!-- END CARD -->
<!-- SECOND CARD -->
<div class="card">
<div class="card-top">
\t <h1 class="card-title">Headline</h1>
\t \t <a href="#" class="mobile-icon"> <span class="glyphicon glyphicon-plus"></span> </a>
\t \t <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor.</p>
\t </div>
\t <!-- END CARD-TOP -->
\t \t \t \t
<div class="card-bottom">
\t <p>Content to be toggled</p>
\t </div>
<!-- END CARD BOTTOM -->
</div>
<!-- END CARD -->
Vous devez passer 'event' dans votre fonction à utiliser preventDefault(). Avez-vous des erreurs de console? – jmargolisvt
Ce fut une erreur en mon nom que je copiais le code que je supprimais quelques modifications pour remonter le code que je voulais utiliser dans ce post. J'avais oublié à ce stade d'inclure l'événement.En fait, j'ai d'abord passé «événement» juste comme «e» et je l'ai laissé hors de ce poste comme une erreur. Je laisserai ça à d'autres qui pourraient faire la même erreur. Je n'obtenais aucune erreur et "salut là-bas" console console juste très bien. Je vous remercie! – user5854648