javascript - btn.addEventListener('click',fn,false); Comment passer les paramètres à fn ?
我想大声告诉你
我想大声告诉你 2017-05-18 10:50:06
0
6
780

Je l'ai essayé mais il semble que cela ne puisse pas être transmis ? ? ?

我想大声告诉你
我想大声告诉你

répondre à tous(6)
習慣沉默

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>
黄舟

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...

给我你的怀抱
btn.addEventListener('click',function(){fn('params')});
function fn(data) {
    alert(data)
}

Essayer ça ?

巴扎黑
document.getElementById('aaa').addEventListener('click', fn('asdadad'), false);

function fn(data) {
    console.info(data);
}
巴扎黑
function foo(a, b, c) {}

// 不要这样做
setTimeout('foo(1,2, 3)', 1000)

// 可以使用匿名函数完成相同功能
setTimeout(function() {
    foo(1, 2, 3);
}, 1000)
巴扎黑

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

btn.addEventListener('click',fn,false);

Après que l'événement d'écoute addEventListener de

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal