Ik heb in mijn html code de volgende 5 links staan:
Nu wil ik graag met javascript de eventhandlers zetten op deze manier:
Dus als ik op link1 klikt zou die 1 moeten alerten en als ik op link2 klikt 2 enz.
Het probleem is dat hij nu overal 5 laat zien, dus de huidige of laatste waarde van i.
Ik zou natuurlijk <a href="#" onclick="alert('1')" id="link1">Link #1</a> kunnen doen, maar ik wil graag mijn javascript gescheiden houden van mijn opmaak.
Een andere optie zou zijn:
maar dit vind ik weer vrij omslachtig en gezien het aantal van 5 puur theoretisch is en dit in de praktijk een veel groter aantal links kan zijn kan dit behoorlijk oplopen qua hoeveelheid code.
Misschien dat iemand hier een oplossing of een betere methode hiervoor heeft.
HTML:
1
2
3
4
5
| <a href="#" id="link1">Link #1</a> <a href="#" id="link2">Link #2</a> <a href="#" id="link3">Link #3</a> <a href="#" id="link4">Link #4</a> <a href="#" id="link5">Link #5</a> |
Nu wil ik graag met javascript de eventhandlers zetten op deze manier:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| var linkPrefix = "link"; var nLinks = 5; function initLinksEventHandlers() { if (document.documentElement) { for (var i = 1; i <= nLinks; i++) { var questionObject = document.getElementById(linkPrefix+i); questionObject.onclick = function() { alert(i); } } } } window.onload = initLinksEventHandlers; |
Dus als ik op link1 klikt zou die 1 moeten alerten en als ik op link2 klikt 2 enz.
Het probleem is dat hij nu overal 5 laat zien, dus de huidige of laatste waarde van i.
Ik zou natuurlijk <a href="#" onclick="alert('1')" id="link1">Link #1</a> kunnen doen, maar ik wil graag mijn javascript gescheiden houden van mijn opmaak.
Een andere optie zou zijn:
JavaScript:
1
2
3
4
5
| document.getElementById("link1").onclick = function() { alert("1"); } document.getElementById("link2").onclick = function() { alert("2"); } document.getElementById("link3").onclick = function() { alert("3"); } document.getElementById("link4").onclick = function() { alert("4"); } document.getElementById("link5").onclick = function() { alert("5"); } |
maar dit vind ik weer vrij omslachtig en gezien het aantal van 5 puur theoretisch is en dit in de praktijk een veel groter aantal links kan zijn kan dit behoorlijk oplopen qua hoeveelheid code.
Misschien dat iemand hier een oplossing of een betere methode hiervoor heeft.
[ Voor 14% gewijzigd door sjink op 07-04-2006 09:19 . Reden: nieuwe highlight optie ]
*blup*