J'ai une boucle de 50 divs, dans laquelle j'affecte l'événement en fonction de l'élément en cours. Cependant, je veux attribuer un événement en fonction d'une condition. Par exemple, les Divs sont disposées les unes derrière les autres, tout comme une pile photo. Je veux que l'utilisateur frappe d'abord le premier div, alors seulement ils devraient pouvoir frapper le deuxième div puis le troisième div et ainsi de suite jusqu'à ce qu'ils atteignent la fin des divs.sous boucle, comment affecter un événement en fonction de la condition en fonction de la valeur d'index
En raison du code ci-dessous, l'utilisateur peut frapper n'importe quel div et effectuer une action. Mais l'action doit être effectuée un par un. Un div après l'autre. S'il vous plaît suggérer la solution.
var flag=0;
var flipImage=document.querySelectorAll('.shadow');
for(j=0; j<flipImage.length; j++){
var currentFlipImage=flipImage[j];
if(j==flag){
flag++;
currentFlipImage.addEventListener('click',flipDown,false);
}
}
Cette solution a l'air parfaite. Cependant, sur chaque div actuel, je dois joindre une classe appelée flip down, qui permet à la div de flipdown. Quand j'essaye je deviens l'animation très étrange. ci-dessous le code que j'ai dans la fonction de bascule. var obj = event.target; obj.className = 'flipDown'; Je pense que la classe est affectée à mousevent, au lieu de div réel. Quelle est la solution pour cela? – user504023
@ user504023: Pourriez-vous créer un jsFiddle avec votre code? Il est difficile d'aider avec cette information seulement, mais il semble que vous attachez la classe correctement. –
Merci beaucoup. En fait, j'ai une solution pour gérer cela. J'utilise event.currentTarget, au lieu de event.target. Cela fonctionne bien maintenant. Votre code ci-dessus m'aide vraiment beaucoup. Merci encore. – user504023