Javascript functie in for loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark Hogeveen

Mark Hogeveen

08/05/2013 18:51:20
Quote Anchor link
Hallo, hieronder staat een voorbeeldcode van iets dat niet werkt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>

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

PHP hulp

26/11/2024 09:23:31
 
Nick Dijkstra

Nick Dijkstra

08/05/2013 18:56:48
Quote Anchor link
Het is makkelijker om jQuery daarvoor te gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<script>
$(function(){
    $("div").click(function() {
        alert('Geklikt');
    });
});
</script>

<div>Klikbare div 1</div>
<div>Klikbare div 2</div>
<div>Klikbare div 3</div>
 
Mark Hogeveen

Mark Hogeveen

08/05/2013 19:32:24
Quote Anchor link
Hoe doe je dat zonder jQuery?
 
Wouter J

Wouter J

08/05/2013 19:37:42
Quote Anchor link
Pff, 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/
 
Nick Dijkstra

Nick Dijkstra

08/05/2013 19:42:20
Quote Anchor link
Het is niet beter, maar makkelijker :P
Een stukje korter, en werkt net zo goed ;-)
 
Wouter J

Wouter J

08/05/2013 19:43:49
Quote Anchor link
en heeft geen support voor IE8- en kost zo'n 28kb inhalen... Ja, echt stukken beter voor zoiets simpels!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.