javascript - Comment transmettre dynamiquement une fonction paramétrée à addEventListener?
phpcn_u1582
phpcn_u1582 2017-05-18 10:50:01
0
5
827

Il existe une réponse non adoptée à "Xiaoxiao Yuxie", qui est également utile, mais je ne connais pas encore l'utilisation spécifique de let. Désolé, je veux vraiment en adopter deux.

Le résultat est définitivement
cliquez sur le bouton1, alerte(3)
cliquez sur le bouton2,alerte(3)

Comment modifier le code pour créer une alerte
cliquez sur le bouton 1 (1)
cliquez sur l'alerte bouton2 (2)

Je pense que ce problème est un peu similaire au problème de fermeture classique de settimeout, mais je ne trouve aucune solution.

S'il vous plaît, donnez-moi quelques conseils.

phpcn_u1582
phpcn_u1582

répondre à tous(5)
phpcn_u1582
function myclick(i){
    return function(){
         alert(i)
    }

Le deuxième paramètre est passé à myclick(i)

PHPzhong

Enregistrez les paramètres dans les attributs de chaque élément du bouton.
ou laissez

我想大声告诉你

<button id='myButton1' data-info='abc'></button> Après avoir cliqué sur le bouton, obtenez les attributs dans les données-info du bouton

曾经蜡笔没有小新

Jquery exploite généralement le DOM lors du rendu, il est généralement épissé sur le DOM au format data-*, puis il est obtenu puis utilisé $(this).attr(key)

过去多啦不再A梦

Changer var pour laisser

 window.onload = function () {
      for (let i = 1; i < 3; i++) {
        document.getElementById('myButton' + i)
          .addEventListener('click', () => {
            myClick(i)
          })
      }
    }
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal