Vous rencontrez des problèmes avec celui-ci. J'ai une page avec plusieurs produits, chemises, pantalons etc. Chaque produit vient dans les mêmes couleurs différentes: noir, bleu, vert etc. J'essaye d'écrire un certain jQuery que je peux utiliser pour tous les produits. Fondamentalement, j'ai un div, avec toutes les images de produits avec des classes pour chacun d'eux, par exemple, l'image du produit noir est class = "prodblack". Je voudrais utiliser les mêmes classes pour tous les produits. Mais la façon dont j'ai cette configuration maintenant si je clique sur l'échantillon bleu pour un produit TOUS les produits montrent le bleu, pas seulement le produit que je suis en train de cliquer sur.Jquery Masquer les classes dans la classe parente en utilisant (this)
Voici une partie du HTML, c'est juste un div de beaucoup, mais ils sont tous mis en place les mêmes, les mêmes classes, mêmes couleurs etc.
<div class="fb-col-md-4 fb-col-sm-6 col-xs-12" itemscope itemtype="http://schema.org/Product">
<a href="#double_thick_blanket">
<span class="product-wrap">
<img alt="Double Thick Blanket" class="proddefault" onerror="this.onerror = null;this.src='/images/image-not-found.jpg'" src="<?php bloginfo('template_directory'); ?>/img/products/pants/pants-tan.jpg">
<img alt="Double Thick Blanket" class="prodtan" onerror="this.onerror = null;this.src='/images/image-not-found.jpg'" src="<?php bloginfo('template_directory'); ?>/img/products/pants/pants-tan.jpg">
<img alt="Double Thick Blanket" class="prodgreen" onerror="this.onerror = null;this.src='/images/image-not-found.jpg'" src="<?php bloginfo('template_directory'); ?>/img/products/pants/pants-green.jpg">
<img alt="Double Thick Blanket" class="prodblue" onerror="this.onerror = null;this.src='/images/image-not-found.jpg'" src="<?php bloginfo('template_directory'); ?>/img/products/pants/pants-blue.jpg">
<img alt="Double Thick Blanket" class="prodgray" onerror="this.onerror = null;this.src='/images/image-not-found.jpg'" src="<?php bloginfo('template_directory'); ?>/img/products/pants/pants-gray.jpg">
<img alt="Double Thick Blanket" class="prodblack" onerror="this.onerror = null;this.src='/images/image-not-found.jpg'" src="<?php bloginfo('template_directory'); ?>/img/products/pants/pants-black.jpg"></span>
<span class="productSwatches">
<span class="squareSwatch blue"></span>
<span class="squareSwatch gray"></span>
<span class="squareSwatch tan"></span>
<span class="squareSwatch green"></span>
<span class="squareSwatch black"></span>
<span style="clear:both"></span>
</span>
<section class="price-wrap">
<h4 class="new-tree"><span itemprop="name">Double Thick Blanket</span> <em>$99.95</em></h4>
</section></a>
</div>
Et voici le Jquery, je commencé à jouer avec le bleu en utilisant swatch $ (ce) mais ne peut pas sembler le faire fonctionner:
jQuery(document).ready(function($){
var hideAllButBlue = ".prodgreen,.prodtan,.prodblack,.prodgray,.proddefault";
var hideAllButBlack = ".prodgreen,.prodtan,.prodblue,.prodgray,.proddefault";
var hideAllButGreen = ".prodblack,.prodtan,.prodblue,.prodgray,.proddefault";
var hideAllButTan = ".prodblack,.prodgreen,.prodblue,.prodgray,.proddefault";
var hideAllButGray = ".prodblack,.prodgreen,.prodblue,.prodtan,.proddefault";
$(".prodgreen,.prodtan,.prodblue,.prodblack,.prodgray").hide();
$(".proddefault").show();
$(".blue").click(function() {
$(this).parent('div').show('.prodblue');
$(hideAllButBlue).hide();
});
$(".black").click(function() {
$('.prodblack').show();
$(hideAllButBlack).hide();
});
$(".gray").click(function() {
$('.prodgray').show();
$(hideAllButGray).hide();
});
$(".green").click(function() {
$('.prodgreen').show();
$(hideAllButGreen).hide();
});
$(".tan").click(function() {
$('.prodtan').show();
$(hideAllButTan).hide();
});
});
Toute aide serait grandement appréciée, merci