Autor | Zpráva | ||
---|---|---|---|
Hanz Profil |
#1 · Zasláno: 23. 7. 2007, 15:28:03
Jde nějak zjistit název konstruktoru z třídy, které je to konstruktor?
No odhaduju, že to moc lidí nepochopilo, tak ukázka: function Pokus(){ alert(XXX); } var nezev = new Pokus(); Já potřebuju něco co mi za to XXX dosadí "nazev". Například kdyby to bylo var cokolada = new Pokus();, tak mi o vyhodí "cokolada". Jde to? |
||
ah01 Profil |
#2 · Zasláno: 23. 7. 2007, 19:05:40
„Jde to?“
Dost špatně. Přijde mi to jako dost divný požadavek. K čemu by to mělo být dobré? |
||
Hanz Profil |
#3 · Zasláno: 23. 7. 2007, 21:54:00
function Ob(element){
this.el = element; addEvent(this.el, 'mousedown', this.drag); } Ob.prototype.drag = function(e){ // tohle nebude fungovat: this.el.style.left = e.clientX+'px'; // tohle fungovat bude: objekt.el.style.lef = e.clientX+'px'; } var objekt = new Ob($('box')); $ -> je funkce pro getElementById addEvent -> funkce pro přidání události Problém je v tom, že já nebudu vědět jak se bude ten konstruktor jmenovat. Vím, že by ten název šel posílat jako parametr, ale to vidím jako krajní řešení. |
||
ah01 Profil |
#4 · Zasláno: 23. 7. 2007, 23:26:59
aha
1) nejedná se tedy o název konstruktoru, ale instanci objektu 2) jdeš na to ze špatné strany. Lepší je dostat referenci na element do obsluhy té události. Mrkni na http://diskuse.jakpsatweb.cz/index.php?action=vthread&topic=48604&foru m=8&page=-1 , to je stejný problém, jen trochu jinak popsaný. |
||
Hanz Profil |
#5 · Zasláno: 24. 7. 2007, 00:23:13
ah01
No to mi sice pomohlo v tom, že se můžu odkázat na tu proměnnou, ale zase jsem přišel o událost. V této funkci z toho scriptu výše: Ob.prototype.drag = function(e){ } se nepředá parametr "e" z kterého beru clientX Co s tím? |
||
ah01 Profil |
#6 · Zasláno: 24. 7. 2007, 00:48:11
třeba (nevím jak to máš konkrétně napsané):
var that = this; |
||
Hanz Profil |
#7 · Zasláno: 24. 7. 2007, 01:03:23
ah01
Já jsem fakt blbec! Moc dík to mě nenapadlo... |
||
Časová prodleva: 17 let
|
0