2008-10-24 6 views
0

J'ai 3 divs dont un seul est visible par défaut, ils contiennent chacun des informations sur un produit. Ci-dessous cette divs est une liste de 3 images qui sont des images des produits. Par défaut, bien sûr, le premier élément de la liste est sélectionné et contient class="selected". Lorsqu'une image de produit différente est cliquée, class="selected" se déplace vers cet élément de liste et la div ci-dessus devient cachée et la div contenant les autres informations sur le produit doit apparaître.jQuery Element Swap

J'ai cherché partout un plugin qui peut faire ce que je veux, ils sont tous limités d'une manière ou d'une autre ce qui m'empêche de le faire.

+0

Et je viens de remarquer l'erreur épistolaire flagrante dans le titre de cette question, désolé les gars :) – zuk1

+0

Pouvez-vous inclure le code html dont vous parlez? –

Répondre

2

Consultez le code suivant:

<img id="img1" src="1.jpg" desc="d1" class="selected prodImg" /> 
<img id="img2" src="2.jpg" desc="d2" class="prodImg" /> 
<img id="img3" src="3.jpg" desc="d3" class="prodImg"/> 

<div id="d1">description 1</div> 
<div id="d2" class="hidden">description 2</div> 
<div id="d3" class="hidden">description 3</div> 

<script> 

    $(".prodImg").click(function() { 

     if ($(this).hasClass("selected")) return; 

     $("#" + $(".selected").attr("desc")).addClass("hidden"); 
     $(".selected").removeClass("selected"); 

     $("#" + $(this).attr("desc")).removeClass("hidden"); 
     $(this).addClass("selected"); 

    }); 

</script> 

Cela devrait vous être assez proche. Vous devez définir la relation entre vos images et divs ... alors j'ai ajouté un attribut 'desc' aux images. La classe supplémentaire 'prodImg' sur les images vous permet de vous assurer que seules ces images sont câblées pour ce type de comportement d'échange et d'échange.

+0

Ne pouvez-vous pas simplement l'accrocher pour pouvoir lier les images à # prod1 # prod2 etc etc? Et les divs qui sont liés aussi sont ceux qui seront affichés? – zuk1

+0

oui, les attributs personnalisés sont sinistres, il suffit d'utiliser l'index s'il y a une relation 1 à 1 – redsquare

1

Le widget Acordian a des fonctionnalités similaires. Si vous placez les images dans les en-têtes, vous obtiendrez l'effet souhaité. Pour plus d'informations, consultez http://docs.jquery.com/UI/Accordion pour plus d'informations.

+0

Désolé, impossible à faire en raison de la façon dont il serait formaté. Cela doit ressembler à une fenêtre de produit avec les trois images du produit ci-dessous, et les informations sur le produit dans la fenêtre du produit changent juste. – zuk1

0
<script> 

    $(".prodImg").click(function() { 

     if ($(this).hasClass("selected")) return; 


     $('.prodImg').removeClass('selected'); 

     $(this).addClass('selected'); 

     var name = $(this).attr('desc'); 

     $('.'+name).removeClass(); 
     $('.'+name).addClass('');  

    }); 

</script> 

J'espère que cela peut vous aider!

Questions connexes