Salut
Je vois ce que tu veux faire maintenant (tu as mené un petit changement de concept apparemment).
Alors pour ton code:
-Je suppose que cela cible bien des liens qui font référence à l'image (c a d: la récupération du lien me permis selon ta conception de connaitre l'image en question.):
$('a', $('#mechier')).click(function(e){
-Je suppose aussi que la classe que tu ajoutes aux éléments choisis "hover-shades" permet de distinguer ta sélection de 8 éléments, et que tu l'ajoutes à l'image.
-pour ça:
$this = $(this);
console.log(index + ': ' + $this.length);
Je ne comprends pas vraiment à quoi ça sert car le $this.length te donnera toujours 1. (C'est comme si tu dis: récupères moi le nombre d'items inclus dans ma sélection).
-Pour ça:
$(".hover-shades").remove();
Tu supprimes du DOM tout les éléments possédant la classe "hover-shades".
Je vais partir alors sur ta logique et essayer de te fournir une solution, qui si n'est pas compatible à ton cas pourra au moins t'aider à le résoudre, car j'ignore le cas réel de ton problème

, mais ça ne t'empêche pas de faire de l'effort pour se former sur ses technologies, (Et je vais supposer que ton image est dans la balise <a> sur laquelle tu as mis l'événement clique):
$('a', $('#mechier')).click(function(e){
var img=$(this).children('img');
if(img.hasClass('hover-shades')){ //Le client annule un choix qui est déjà fait
img.removeClass('hover-shades'); //On supprime la class qui définit les éléments choisis dans la sélection
}
else{ //Le Client effetue un nouveau choix
if($('.hover-shades').length<8){ //Le client à droit de choisir un autre item
img.addClass('hover-shades'); //On ajoute la class qui définit les éléments choisis dans la sélection
}
else{ //Le client a atteint la limite des choix (Les éléments choisis>=8)
alert('Un message au client');
}
}
});
Je t'ai fait un code pour pouvoir faire et annuler un choix (cela pour te débloquer en attendant que tu acquis les connaissances nécessaires).
Par suite au déclenchement de ton événement tu mets ta sélection dans une cookie à l'aide de ça (Je suppose qu'au chargement de ta page tu mets les identifiant dans l'attribut id de l'image):
...
var selection='';
$('.hover-shades').each(function(){
selection=$(this).attr('id')+',';
});
selection=selection.substr(0,selection.length-1);
...
Et tu l'insères dans ta cookie
et quand tu le récupérera tu n'as qu'à faire un splice sur le contenu de la cookie par une virgule "," (Le séparateur auquel nous avions fait usage pour formater le String selection), et tu auras les id de tes images dans un tableau

.
Bon courage (Et excuse moi pour le retard j'avais plein de boulot).
Modifié par unami (23 Mar 2012 - 18:16)