Eu quero passar um argumento para a função queestá sendo chamado dentro do ouvinte do evento. O código abaixo mostra o que eu quero fazer, mas não me deixa fazer isso convencionalmente. O que é uma solução para isso?
Código HTML :
<button id="btn">Click Me</button>
Código JavaScript:
<script>
document.getElementById("btn").addEventListener( "click",btnClick(5) );
function btnClick(argument)
{
console.log("Button clicked with argument : " + argument);
}
</script>
Console deve ler:
Button clicked with argument : 5
Obrigado rapazes.
Respostas:
4 para resposta № 1Com uma função anônima
document.getElementById("btn").addEventListener( "click", function() {
btnClick(5);
}, false );
Se você precisa manter o valor de this
você pode usar a chamada ou aplicar
btnClick.call(this, 5);
0 para resposta № 2
O valor de 5 está sempre associado a esse botão? Se sim, você pode fazer:
<script>
var btn = document.getElementById("btn");
btn.tag = 5;
btn.addEventListener( "click",btnClick );
function btnClick()
{
console.log("Button clicked with argument : " + btn.tag);
}
</script>
Ou passe 5 dentro do manipulador btnClick ...