0
votes

jQuery ajoutant de plusieurs images dans une boucle imbriquée

J'essaie de taper un numéro dans une zone de texte, puis créez de nombreuses instances d'une image que j'ai sélectionnée.

Actuellement, il ne crée qu'une seule instance de l'image, à moins que je ne pose un point d'arrêt dans l'outil DEV. Je pense que cela peut être lié au async code> nature de JavaScript. P>

J'ai mis un compte dans les boucles à tester avec, ce qui renvoie le nombre correct. J'ai également essayé de référencer le outherhtml code> de l'objet image et la création d'une concaténation de chaîne des commandes, mais qui a le même problème. P>

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label id='lblchar'>Number of Character</label>
<input id="amtchar" value='0' />
<label id='lblchar'>Add a Character</label>
<input id="character" type="file" />


1 commentaires

Cela ne crée qu'une seule instance de l'image - regarde la sortie dans les outils du navigateur, non à l'écran - il crée plusieurs images (la boucle fonctionne donc bien) - mais une seule a une. src qui est où le problème est


3 Réponses :


0
votes

Vous avez raison, le problème est dû au comportement ASYNC de fileReader code>. Vous avez besoin d'une fermeture:

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label id="lblchar">Number of Character</label>
<input id="amtchar" value="0" />
<label id="lblchar">Add a Character</label>
<input id="character" type="file" />


0 commentaires

0
votes

La boucle fonctionne bien, la question est une portée variable.

Utilisation de varecteur = code> fait cette variable la même variable pour l'ensemble .Change code> fonction. C'est comme: p> xxx pré>

à chaque fois par la boucle, vous mettez à jour le même lecteur, donc à la fin de la boucle, il n'y a qu'un seul lecteur avec un seul .Ondrendend.

Vous pouvez contourner cela en ajoutant une portée intérieure, ou en utilisant p> xxx pré>

qui limite cette variable à la portée intérieure (à l'intérieur de l'intérieur de la boucle) . P>

Snippet mis à jour: p>

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label id='lblchar'>Number of Character</label>
<input id="amtchar" value='0' />
<label id='lblchar'>Add a Character</label>
<input id="character" type="file" />


1 commentaires

Moins de lignes de code et moins de changements. Merci!



0
votes

Dans la boucle pour la boucle, vous réaffectant constamment IMG et chaque fois que l'on appelle ONLOWLODEND, IMG sera défini sur la dernière image de la boucle car la boucle finnoise avant que la fonction ne soit appelée. Essayez de faire de la constante IMG et de l'ajouter comme un attribut au lecteur. Intérieur Onlardend Vous pouvez accéder au lecteur avec "Ceci"-Motel (code non testé): xxx


0 commentaires