<script type="text/javascript"> function box(name) { this.name = name; this.init = box_init; this.swap=box_swap; this.init(); } function box_init() { e = document.createElement('div'); e.innerHTML="click me"; e.onclick=this.swap; document.getElementById('content').appendChild(e); } function box_swap() { alert(this.name); } box01 = new box('01'); box02 = new box('02'); </script>
Kliknięcie w wygenerowany div - "click me" powoduje wywołanie metody "swap", problem w tym że zamiast "name" alert wyswietła mi wartość "undefinited". Tak jakby metoda nie miała dostępu do zmiennych obiektu. Problem pewnie tkwi w wywłoaniu onclick, ale ja nie mam pojecia jak to popwawić. Z góry dziękuję za odpowiedź.
Edit:
Wykombinowałem coś takiego
zmiast:
Kod
e.onclick=this.swap;
napisałem:
Kod
obj= this;
e.onclick= function() { obj.swap() };
e.onclick= function() { obj.swap() };
Prawie działa, ale tylko kiedy jest jeden obiekt. Dodanie drugiego powoduje wyswieltenie jego wartosci niezależnie na który klikne
