In navolging van mijn eerdere topic over prototyping (ik snap het nu
) het volgende. Ik heb deze code:
Wat de bedoeling is: ik maak ergens in de pagina een "datePicker1 = new MozDatePicker( 'datePicker1' );". Deze zet een plaatje neer ("writeDatePicker()") wat als erop geklikt wordt de functie popUp() uit zou moeten voeren. Hij moet dan dus "datePicker1.popUp()" uitvoeren, vandaar "this.htmlElement + '.popUp()'" in de code.
Dit werkt prima in Firefox, maar wil voor geen meter in IE, wat ik ook probeer. Het gaat in zoverre goed dat 'ie de onclick wel goed zet; als ik er "x.onclick = new Function( 'alert(\'blaat\')' );" van maak geeft 'ie gewoon een alert, maar de "samengestelde" functie heeft er dus geen zin in.
Wat ik wil moet kunnen zou je denken, aangezien het in Firefox prima werkt. In principe kan ik geen andere manier vinden om dit te bereiken dan zo, want het geheel moet wel dynamisch zijn enzo uiteraard.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| function MozDatePicker( _htmlElement ) {
this.htmlElement = _htmlElement;
this.writeDatePicker();
}
MozDatePicker.prototype = {
writeDatePicker:function() {
var x = document.createElement( 'img' );
x.setAttribute( 'src' , 'img/datepicker.gif' );
x.onclick = new Function( this.htmlElement + '.popUp()' );
document.body.appendChild( x );
},
popUp:function() {
alert( 'blaat' );
}
} |
Wat de bedoeling is: ik maak ergens in de pagina een "datePicker1 = new MozDatePicker( 'datePicker1' );". Deze zet een plaatje neer ("writeDatePicker()") wat als erop geklikt wordt de functie popUp() uit zou moeten voeren. Hij moet dan dus "datePicker1.popUp()" uitvoeren, vandaar "this.htmlElement + '.popUp()'" in de code.
Dit werkt prima in Firefox, maar wil voor geen meter in IE, wat ik ook probeer. Het gaat in zoverre goed dat 'ie de onclick wel goed zet; als ik er "x.onclick = new Function( 'alert(\'blaat\')' );" van maak geeft 'ie gewoon een alert, maar de "samengestelde" functie heeft er dus geen zin in.
Wat ik wil moet kunnen zou je denken, aangezien het in Firefox prima werkt. In principe kan ik geen andere manier vinden om dit te bereiken dan zo, want het geheel moet wel dynamisch zijn enzo uiteraard.
[ Voor 44% gewijzigd door Verwijderd op 14-04-2005 19:08 ]