Desidero utilizzare i listener di eventi per impedire la generazione di eventi su un div all'interno di un div con funzioni onclick. Questo funziona, il passaggio di parametri come ho previsto:Javascript multiplo dinamico addEventListener creato per parametri di passaggio del loop non funzionanti
<div onclick="doMouseClick(0, 'Dog', 'Cat');" id="button_id_0"></div>
<div onclick="doMouseClick(1, 'Dog', 'Cat');" id="button_id_1"></div>
<div onclick="doMouseClick(2, 'Dog', 'Cat');" id="button_id_2"></div>
<script>
function doMouseClick(peram1, peram2, peram3){
alert("doMouseClick() called AND peram1 = "+peram1+" AND peram2 = "+peram2+" AND peram3 = "+peram3);
}
</script>
Tuttavia, ho cercato di creare più listener di eventi in un ciclo con questo:
<div id="button_id_0"></div>
<div id="button_id_1"></div>
<div id="button_id_2"></div>
<script>
function doMouseClick(peram1, peram2, peram3){
alert("doMouseClick() called AND peram1 = "+peram1+" AND peram2 = "+peram2+" AND peram3 = "+peram3);
}
var names = ['button_id_0', 'button_id_1', 'button_id_2'];
for (var i=0; i<names.length; i++){
document.getElementById(names[i]).addEventListener("click", function(){
doMouseClick(i, "Dog", "Cat");
},false);
}
</script>
Si assegna correttamente la funzione di click per ogni div, ma la il primo parametro per ciascuno, peram1
, è 3
. Mi aspettavo 3 diversi gestori di eventi che passassero diversi valori di i
per peram1
.
Perché sta succedendo? I gestori di eventi non sono tutti separati?
Grazie mille:)! – KDawg
Grazie. Mi chiedevo perché 'i' non rientravano nel perimetro e restituivano un elemento' indefinito'. –