Ik ben hier al tijden bezig met een stuk code waar ik niet uit kom. Ik heb de code wat vereenvoudigd:
de functie populate_table() voegt 10 rows toe aan een tabel waarbij een onClick event worden meegegeven. Het probleem is dat wanneer ik later op de TD in de tabel klik en dus het onclick event wordt aangesproken ik altijd het cijfer 10 terug krijg. Blijkbaar wordt niet de huidige waarde van i bij het aanmaken van het onclick event meegegeven maar echt de variabele i. Weet iemand hoe ik mijn "oCell.onclick" zo kan veranderen dat de huidige waarde van "i" wordt meegegeven?
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| function populate_table() { oTable = document.getElementById('mytable'); for(i=0;i<10;i++) { var oRow = oTable.insertRow(oTable.rows.length); var oCell = oRow.insertCell(oRow.cells.length); oCell.onclick= function(){ do_alert(i);}; oCell.innerHTML = "NR "+i; } } function do_alert(num) { alert(num); } |
de functie populate_table() voegt 10 rows toe aan een tabel waarbij een onClick event worden meegegeven. Het probleem is dat wanneer ik later op de TD in de tabel klik en dus het onclick event wordt aangesproken ik altijd het cijfer 10 terug krijg. Blijkbaar wordt niet de huidige waarde van i bij het aanmaken van het onclick event meegegeven maar echt de variabele i. Weet iemand hoe ik mijn "oCell.onclick" zo kan veranderen dat de huidige waarde van "i" wordt meegegeven?
Een vergissing is menselijk maar om er een puinhoop van te maken heb je een computer nodig (met mij erachter)