In ons CMS worden formulierelementen gegenereerd. In sommige gevallen krijgen deze elementen een onclick of onchange mee. Soms gebeurt dit inline (<input onclick="functie()") en soms wordt er een stukje javascript gegenereerd die de onclick zet (DOM 1).
Met een nieuw element wil ik javascript acties toevoegen aan bepaalde elementen. De huidige events moeten echter wel behouden blijven.
Met wat knutselwerk kwam ik tot het volgende:
in de body dan een element:
Met een rare constructie in de functie doeIetsAnders kijk ik nu welk element de functie heeft aangeroepen, omdat ik het niet voor elkaar kreeg om dat mee te geven in de functieaanroep.
Is er een minder omslachtige/betere manier om functies toe te voegen aan elementen?
Dank!
Met een nieuw element wil ik javascript acties toevoegen aan bepaalde elementen. De huidige events moeten echter wel behouden blijven.
Met wat knutselwerk kwam ik tot het volgende:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| function doeIets(){ alert('doeIets'); } function doeIetsAnders(e){ //alert('doeIetsAnders ' + e); var id = false; for (var i in e){ if (e[i] && e[i].id){ id = e[i].id; break; } } if (id){ alert(document.getElementById(id).innerHTML); } } onload = function(){ var t = document.getElementById('test'); if(document.attachEvent) { t.attachEvent('onclick', function(e){doeIetsAnders(e)}); } else { t.addEventListener('click', function(e){doeIetsAnders(e)}, true); } } |
in de body dan een element:
HTML:
1
| <span id="test" onclick="doeIets();">test html</span> |
Met een rare constructie in de functie doeIetsAnders kijk ik nu welk element de functie heeft aangeroepen, omdat ik het niet voor elkaar kreeg om dat mee te geven in de functieaanroep.
Is er een minder omslachtige/betere manier om functies toe te voegen aan elementen?
Dank!