Javascript functie in for loop
Mark Hogeveen
08/05/2013 18:51:20Hallo, hieronder staat een voorbeeldcode van iets dat niet werkt.
Het probleem is dat het onClick event dat ik aan alle divs meegeef alleen nog geldt voor de laatste div, en dat er dus blijkbaar iets wordt "vergeten" na elke lus in de for-loop.
Hoe kan ik zorgen dat ik toch op deze manier aan alle elementen in een array een onClick event en functie kan geven?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<script>
function init() {
var divs = document.getElementsByTagName("div");
for(i = 0; i < divs.length; i++) {
divs[i].onclick = function () { alert('Geklikt'); };
}
}
window.onload = init;
</script>
<div>Klikbare div 1</div>
<div>Klikbare div 2</div>
<div>Klikbare div 3</div>
function init() {
var divs = document.getElementsByTagName("div");
for(i = 0; i < divs.length; i++) {
divs[i].onclick = function () { alert('Geklikt'); };
}
}
window.onload = init;
</script>
<div>Klikbare div 1</div>
<div>Klikbare div 2</div>
<div>Klikbare div 3</div>
Het probleem is dat het onClick event dat ik aan alle divs meegeef alleen nog geldt voor de laatste div, en dat er dus blijkbaar iets wordt "vergeten" na elke lus in de for-loop.
Hoe kan ik zorgen dat ik toch op deze manier aan alle elementen in een array een onClick event en functie kan geven?
Gewijzigd op 08/05/2013 18:52:29 door Mark Hogeveen
PHP hulp
26/11/2024 09:23:31Nick Dijkstra
08/05/2013 18:56:48Het is makkelijker om jQuery daarvoor te gebruiken:
Mark Hogeveen
08/05/2013 19:32:24Wouter J
08/05/2013 19:37:42Pff, aub niet elke javaScript vraag met 'jQuery is beter' beantwoorden...
Het kan natuurlijk aan mij liggen, maar het werkt hier gewoon zoals verwacht. http://jsfiddle.net/ehKbs/
Het kan natuurlijk aan mij liggen, maar het werkt hier gewoon zoals verwacht. http://jsfiddle.net/ehKbs/
Nick Dijkstra
08/05/2013 19:42:20Wouter J
08/05/2013 19:43:49en heeft geen support voor IE8- en kost zo'n 28kb inhalen... Ja, echt stukken beter voor zoiets simpels!