Ik bouw door middel van javascript dynamisch een tabel op. Dit doe ik door een tree te maken van de html elementen van de tabel. Door midden van een functie wordt deze dan omgezet naar daadwerkelijke elementen die ik in de DOM tree kan injecteren:
zoiets dus... Dat werkt allemaal prima. Iedere tabel row wordt ook door middel van een javascript object gerepresenteerd (vandaar ook this.id).
Nu wil ik echter onclick events dynamisch toewijzen:
Oke, dit werkt ook op zich, maar hier kan ik niet zoveel mee, natuurlijk. Dus verder:
Hier gaat het mis. this.id geeft namelijk netjes "button_xxx" terug i.p.v het id van mijn representatie object. Op zich best logisch natuurlijk. Wat ik dus wil is dat ik binnen de onlick handler toegang heb tot mijn representatie object. Ik heb al van alles geprobeerd, maar ik krijg het niet voor elkaar. Een zoektocht leverde ook niet veel op.
Het beste wat ik kon bedenken is het volgende:
Dan geeft ie in ieder geval netjes het id mee, daar heb ik in eerste instantie wel genoeg aan op zich. Maar dit moet toch mooier kunnen. Ik hoop dus dat jullie nog wat ideeën hebben...
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| var tr = createStructure( { tag: 'tr', id: 'order_'+this.id, className: 'hovertable', children: [ { tag: 'td', width: '13', style: 'border:none', children: [ { tag:'div', id: 'order_color_'+this.id, className: 'coloredblock', style: "background-color: "+this.color } ] },{.... |
zoiets dus... Dat werkt allemaal prima. Iedere tabel row wordt ook door middel van een javascript object gerepresenteerd (vandaar ook this.id).
Nu wil ik echter onclick events dynamisch toewijzen:
JavaScript:
1
2
3
4
5
| createStructure( { tag: 'button', id: 'button_'+this.id, onclick: function(){ alert(aap)} }) |
Oke, dit werkt ook op zich, maar hier kan ik niet zoveel mee, natuurlijk. Dus verder:
JavaScript:
1
2
3
4
5
| createStructure( { tag: 'button', id: 'button_'+this.id, onclick: function(){ alert(this.id)} }) |
Hier gaat het mis. this.id geeft namelijk netjes "button_xxx" terug i.p.v het id van mijn representatie object. Op zich best logisch natuurlijk. Wat ik dus wil is dat ik binnen de onlick handler toegang heb tot mijn representatie object. Ik heb al van alles geprobeerd, maar ik krijg het niet voor elkaar. Een zoektocht leverde ook niet veel op.
Het beste wat ik kon bedenken is het volgende:
JavaScript:
1
| onclick: eval("function(){ alert("+this.id+")}") |
Dan geeft ie in ieder geval netjes het id mee, daar heb ik in eerste instantie wel genoeg aan op zich. Maar dit moet toch mooier kunnen. Ik hoop dus dat jullie nog wat ideeën hebben...
Do diamonds shine on the dark side of the moon :?