chame addEventListener em loop com variável
Eu sou novo em JavaScript. Eu tenho um 6 elementos que eu quero equipar com ouvintes de eventos muito semelhantes. Eu tenho uma solução de força bruta que eu quero melhorar, mas (eu acho) eu tenho problemas com o fechamento do Java Script.
Código de trabalho:
elem = document.getElementById("court1button");
elem.addEventListener("click", wassern_id1, false);
elem = document.getElementById("court1xbutton");
elem.addEventListener("click", abbrechen_id1, false);
elem = document.getElementById("court2button");
elem.addEventListener("click", wassern_id2, false);
elem = document.getElementById("court2xbutton");
elem.addEventListener("click", abbrechen_id2, false);
... 4 more times ...
function wassern_id1(event) {
wassern(1, event)
}
function wassern_id2(event) {
wassern(2, event)
}
... 4 more times ...
function abbrechen_id1(event) {
abbrechen(1, event)
}
function abbrechen_id2(event) {
abbrechen(2, event)
}
... 4 more times ...
function wassern(id, event) { ...
function abbrechen(id, event) { ...
Eu um loop simples que não funcionou, quando eu encontreihttps://stackoverflow.com/a/2520602/2536029 e entender por que isso não funcionou. Então eu vim com o seguinte código, que não funciona, mas agora eu já entendo porque isso não funciona. Alguém pode me explicar isso e me ajudar a criar um código de trabalho?
for (var id = 1; id <= 6; id++) {
elem = document.getElementById("court" + id + "button");
elem.addEventListener(
"click",
function(id2, event2){
wassern(id2, event2);
}(id, event),
false
);
elem = document.getElementById("court" + id + "xbutton");
elem.addEventListener(
"click",
function(id2, event2){
abbrechen(id2, event2);
}(id, event),
false
);
}
PS: o problema é queevent
é indefinido durante a invocação de
function wassern(id, event) { ... event.stopPropagation();