J'essaye d'écrire une fonction Javascript (jQuery) simple qui affiche aléatoirement 6 Divs sur un possible 11. Le code sort-of-works, il affiche aléatoirement environ la moitié des Divs, mais il varaies entre 4 et 8.Comportement Javascript incohérent (instruction IF imbriquée dans while loop)
Quelqu'un peut-il me dire où je vais mal? Il semble qu'il devrait être si simple mais je suis complètement perdu!
Mon code:
<div class="offer">Offer 1</div>
<div class="offer">Offer 2</div>
... snip
<div class="offer">Offer 11</div>
<script src="query.min.js" type="text/javascript"></script>
<script>
var changed = 0;
while (changed < 6) {
$('.offer').each(function(index) {
if (changed < 6) {
var showOrNot = Math.floor(Math.random() * 2);
if (showOrNot == 1) {
$(this).addClass('offershow');
changed += 1;
$(this).text(changed); //debugging looking for the current value of changed
}
}
})
}
</script>
Fonctionne plutôt bien quand je le teste - http://jsfiddle.net/infernalbadger/LX5xC/ Il fera occasionnellement moins de 6 car il n'y a pas de vérification pour s'assurer qu'il ne change pas la même div deux fois. –
pourquoi produisez-vous les divs en premier lieu, ne devrait-ce pas être un travail de sideside/db? – Val
Ah, * c'est * ce que je n'avais pas expliqué. Je vous remercie! Pensez que Luke a probablement raison et qu'une solution plus «exacte» pourrait être meilleure. –