ugrás a tartalomhoz

javascript objektum változók eventhadlerből

khayll · 2008. Már. 18. (K), 11.42
Sziasztok!

Az lenne a kérdésem, hogy vajon a következő kódból miért nem megy rendesen az alert(myId); sor?

function MyObject(){
this.myId = 'my_id';

this.render = function(){
var div = document.createElement('div');
div.id = this.myId;
div.innerHTML = 'valami';
document.body.appendChild(div);
document.getElementById(this.myId).attachEvent("onmousedown", this.eventHandler);
}

this.eventHandler = function(event){
alert(this.myId);
}
}

var uff = new MyObject();
uff.render();



Azt gondolnám, hogyha futtatom, és a "valami" szövegre kattintok, akkor kiírja, hogy my_id, de ehelyett undefined-et kapok...

Tud valaki segíteni? Miért nem jó ez így, vagy hogy kéne csinálni?

előre is köszi,
Khayll
 
1

this != this

Balogh Tibor · 2008. Már. 18. (K), 11.54
Azért undefined, mert a div elemnek nincs myId tulajdonsága.
Bővebben:
- http://weblabor.hu/cikkek/oojsafelszinfolott
- http://weblabor.hu/cikkek/oojsafelszinalatt
2

de id-je van... és mégse...

khayll · 2008. Már. 18. (K), 12.03
Ok, de pl. id-je van neki, és azt sem tudom kiolvasni: this.id (pedig annak a div-nek be van állítva az id-je!)
üdv,
Khayll