Je dois mettre à jour le prix code> code> variable globale. Je crois que cela peut avoir quelque chose à faire avec la portée. J'apprécierais que si vous pouviez être utile à cet égard.
Ceci est le script: p> voici le HTML où je reçois mes données de: < / p> voici le HTML où je prends mes données à: p>
3 Réponses :
Il y a deux problèmes ici. Premièrement, Deuxièmement, p> ajouter () code> est d'ajouter un élément à une collection, de ne pas joindre à un gestionnaire d'événements. Pour faire ce que vous voulez utiliser
Cliquez () CODE> ou
ON () CODE>.
prix code> est uniquement mis à jour après em> l'événement de clic se produit, mais votre logique tente de le lire immédiatement. Pour résoudre ce problème, vous devez mettre le
console.log () code> ligne dans ce gestionnaire d'événements. Essayez ceci: p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="delivery1">Click me</button>
<div id="nextday" data-price="1.99">Next day: 1.99</div>
Bonjour Rori, merci pour votre réponse très appréciée. Je dois utiliser la variable de prix après avoir été modifiée par la fonction, c'est pourquoi je mettez la console.log () en dehors de la fonction.
Vous ne devriez toujours pas utiliser les globaux pour cela. Je ne peux pas vraiment proposer des alternatives sans voir ce que fait votre logique complète, bien que
Salut j'ai mis à jour mon message avec toute la logique, j'espère que cela devrait avoir un meilleur sens maintenant.
Cela n'a rien à voir avec la portée.
Regardez votre code: P>
Price code> doit être mis à jour (Eh bien, vous essayez em> à, vous avez fait une faute de frappe et appelée Ajouter code> au lieu de sur code>) li>
- Vous regardez
prix code> li>
ol> Vraisemblablement, à un moment donné plus tard, vous cliquez sur l'élément. P>
à ce point Price code> est mis à jour. P> vous don ' t Regardez-le à nouveau. P>
JavaScript ne se déplace pas dans le passé et change Price Code> Avant de le regarder la première fois. P> Le record de quelle que soit la valeur lorsque vous avez regardée em> qui est affichée dans la console ne changera pas. p> Si vous souhaitez enregistrer la valeur après avoir cliqué sur l'élément, vous devez Placez le code qui fait la journalisation de la fonction appelée lorsque vous cliquez sur l'élément. p>
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="delivery1">5</button>
<span id=nextday data-price=5></span>
Salut quentin, je voudrais la valeur initiale à dire 5 au lieu de 0
@ Pg1728 - Alors réglez-le à cinq en ligne. Cela rendrait le bouton inutile cependant.
Désolé, nous pourrions avoir un malentendu, j'aimerais que la sortie du code indique: Valeur initiale: 5 Cliquez sur Valeur: 5
@ Pg1728 - Alors réglez-le à cinq en ligne. Si la valeur initiale est de 5, il indiquera que la valeur initiale est 5. Vous ne pouvez toujours pas définir à JavaScript Time Vrajet de sorte que si vous cliquez sur le bouton, la valeur avant de cliquer sur le bouton est différent.
@ Pg1728 - ressemble au même problème. Dans votre question originale, vous receviez la mauvaise valeur lorsque vous CONSOLE.LOG CODE> Ed It, car vous l'avez regardé au mauvais moment. La solution consiste à examiner la valeur dans votre gestionnaire de clic. Dans votre mise à jour, vous obtenez une mauvaise valeur dans le HTML car vous mettez à jour le HTML au mauvais moment. Mettez à jour le HTML de la fonction de votre gestionnaire de clic.
Essayez jQuery On () Code> Comme si je suppose que votre élément peut être généré de manière dynamique, essayez de lier le gestionnaire d'événements à l'élément de corps /
Downvote n'est pas à moi, mais notez que vous n'avez pas adressé à la question de l'accès à la variable globale.
Quelles sont exactement vos questions / problèmes?