EventListener: click
bearbeitet von Thorsten LegatHallo.
Ich verstehe nicht, warum die Funktion "schreiben()" aufgerufen wird. Eigentlich möchte ich nur beim Anklicken eines Buttons "schreiben()" ausführen. Kann mir jemand erklären, warum das so ist?
Danke!
~~~javascript
document.addEventListener('DOMContentLoaded', init);
function init() {
var kartenhoehe=10;
var kartenbreite=15;
tabelle();
listener();
function schreiben() {
document.write('warum?');
}
function tabelle() {
var text='';
text+='<table>';
for(var a=0; a<kartenhoehe; a++) {
text+='<tr>';
for(var b=0; b<kartenbreite; b++) {
text+='<td><button id="btn'+a+'.'+b+'"></button></td>';
}
text+='<tr>';
}
text+='</table>';
document.body.innerHTML=text;
}
function listener() {
for(var a=0; a<kartenhoehe; a++) {
for(var b=0; b<kartenbreite; b++) {
var elem = document.getElementById('btn'+a+'.'+b);
elem.addEventListener('click', schreiben());
}
}
}
}
~~~
EventListener: click
bearbeitet von Thorsten LegatHallo.
Ich verstehe nicht, warum die Funktion "schreiben()" aufgerufen wird. Eigentlich möchte ich nur beim anklicken eines Buttons "schreiben()" ausführen. Kann mir jemand erklären, warum das so ist?
Danke!
~~~javascript
document.addEventListener('DOMContentLoaded', init);
function init() {
var kartenhoehe=10;
var kartenbreite=15;
tabelle();
listener();
function schreiben() {
document.write('warum?');
}
function tabelle() {
var text='';
text+='<table>';
for(var a=0; a<kartenhoehe; a++) {
text+='<tr>';
for(var b=0; b<kartenbreite; b++) {
text+='<td><button id="btn'+a+'.'+b+'"></button></td>';
}
text+='<tr>';
}
text+='</table>';
document.body.innerHTML=text;
}
function listener() {
for(var a=0; a<kartenhoehe; a++) {
for(var b=0; b<kartenbreite; b++) {
var elem = document.getElementById('btn'+a+'.'+b);
elem.addEventListener('click', schreiben());
}
}
}
}
~~~