Maison > Questions et réponses > le corps du texte
Je l'ai essayé mais il semble que cela ne puisse pas être transmis ? ? ?
習慣沉默2017-05-18 10:52:06
Pourquoi tant de gens ne l'aiment pas ? Je pense que c'est un bon problème. La fermeture peut le résoudre
.<button>click</button>
<script>
document.querySelector("button").addEventListener("click", fn('hello world'), false);
function fn(a) {
return function() {
alert(a);
}
}
</script>
黄舟2017-05-18 10:52:06
Je ne sais pas ce que vous voulez envoyer.
Mais vous pouvez définir fn comme une fonction qui renvoie une fonction. En gros, répondre aux besoins...
给我你的怀抱2017-05-18 10:52:06
btn.addEventListener('click',function(){fn('params')});
function fn(data) {
alert(data)
}
Essayer ça ?
巴扎黑2017-05-18 10:52:06
document.getElementById('aaa').addEventListener('click', fn('asdadad'), false);
function fn(data) {
console.info(data);
}
巴扎黑2017-05-18 10:52:06
function foo(a, b, c) {}
// 不要这样做
setTimeout('foo(1,2, 3)', 1000)
// 可以使用匿名函数完成相同功能
setTimeout(function() {
foo(1, 2, 3);
}, 1000)
巴扎黑2017-05-18 10:52:06
Je n'ai pas trouvé le prototype de fonction de addEventListener. En utilisation quotidienne, j'ai le sentiment que c'est le cas.
Après avoir capturé l'événement déclencheur, addEventListener ajoute () au nom de la fonction appelante pour appeler .
puis
Après que l'événement d'écoute addEventListener debtn.addEventListener('click',fn,false);
capture l'événement de clic, la fonction exécutée est fn()
addEventListener a l'inconvénient de ne pas pouvoir ajouter de parenthèses avec des paramètres, c'est-à-dire qu'elle Impossible Après avoir capturé le clic, exécutez fn(1,2).
Donc, généralement, j'utilise une fonction anonyme function(){fn(1,2)} comme fonction de liaison. Ensuite le code devient comme ceci :
btn.addEventListener('click',function(){fn(1,2)},false)
Après avoir capturé l'événement de clic, la fonction déclenchée est
function(){fn(1,2)}()
pour déclencher fn (1,2 ) Une telle fonction paramétrée.
Je ne connais pas très bien la fonction addEventListener, bienvenue pour en discuter et me corriger.