0
votes

Y a-t-il un moyen d'afficher div dans un élément de la liste dynamique avec jQuery ou JS

im récupérant des produits de la base de données de manière dynamique dans ma page. Cependant, je souhaite masquer les détails du produit et montrer simplement le titre du produit, puis lorsqu'un utilisateur clique sur le titre, puis les détails du produit montrent. Ces détails ne doivent être que pour le titre de produit cliqué en particulier qui a un identifiant généré unique.

<!-- Jquery -->
  <script type="text/javascript">               
        $(document).ready(function() {
             $(document).ready(function () {
               $(".products-list li p").click(function(e){
                  $('.prd-details').toggle();
                });
            });
        });

  </script>


2 commentaires

Comme vous ne fournissez aucune information sur ce qui ne fonctionne pas, je m'attends à ce que tout fonctionne


Oops. Ce qui ne fonctionne pas, c'est que lorsque je clique sur le titre du produit, tous les autres détails du produit sont encore en avoir besoin d'un à un moment cliqué


3 Réponses :


3
votes

Vous devez récupérer les Détails de PRD par rapport à l'élément cliqué comme

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="products-list">
     <li class="cstm-list">
        <p id="cprd_622">Product A</p>
        <div class="prd-details" style="display: none;">
           <img src="/uploads/product/large/Alienware.jpeg">
           <p>description</p>
           <p>price</p>
        </div>
     </li>
     <li class="cstm-list">
        <p id="cprd_623">Product B</p>
        <div class="prd-details" style="display: none;">
           <img src="/uploads/product/large/Alienware.jpeg">
           <p>description</p>
           <p>price</p>
        </div>
     </li>
     <li class="cstm-list">
        <p id="cprd_624">Product C</p>
        <div class="prd-details" style="display: none;">
           <img src="/uploads/product/large/Alienware.jpeg">
           <p>description</p>
           <p>price</p>
        </div>
     </li>


2 commentaires

Cela fonctionne merci. Est-il également possible que lorsque je clique sur un titre de produit différent, le précédent se cachera automatiquement?


Oui, vous devrez ajouter $ ('. PRD-Détails'). Masquer (); dans la fonction de clic avant la bascule



0
votes

Remplacez votre $ ('. prd-détails'). Basculer (); code> avec ce qui suit .......................................

$ (this) .parent () .Find ('. PRD-Détails'). Bascule ('Fast', fonction () {}); code> p>

ou tout le code est comme suit ... Je ne connais pas le principe d'ajout de l'extrait de code, l'extrait en ligne peut fonctionner ou non, mais apportez simplement des modifications à votre code code> jQuery code> uniquement. Cela fonctionnera. P>

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="products-list">
     <li class="cstm-list">
        <p id="cprd_622">Product A</p>
        <div class="prd-details" style="display: none;">
           <img src="/uploads/product/large/Alienware.jpeg">
           <p>description</p>
           <p>price</p>
        </div>
     </li>
     <li class="cstm-list">
        <p id="cprd_623">Product B</p>
        <div class="prd-details" style="display: none;">
           <img src="/uploads/product/large/Alienware.jpeg">
           <p>description</p>
           <p>price</p>
        </div>
     </li>
     <li class="cstm-list">
        <p id="cprd_624">Product C</p>
        <div class="prd-details" style="display: none;">
           <img src="/uploads/product/large/Alienware.jpeg">
           <p>description</p>
           <p>price</p>
        </div>
     </li>
     </ul


2 commentaires

Cela fonctionne beaucoup merci beaucoup. Est-il également possible que lorsque je clique sur un titre de produit différent, le précédent se cachera automatiquement?


@Fungayimakoni Oui, comme mentionné par le madalinivascu. dans la réponse ci-dessus.



0
votes

Code CSS

$(document).ready(function() {

  $(".products-list li p").click(function(){
   $(this).next('.prd-details').toggle("show");
  });

});


0 commentaires