Autor | Zpráva | ||
---|---|---|---|
pperna Profil * |
#1 · Zasláno: 21. 8. 2005, 02:39:19
Ahoj,
mám drobný problém: Představme si ze mam objekt NECO a v nem metodu METODA a METODA2,koukneme se na ne: /*objekt*/ function NECO() { NECO.prototype.METODA = function (str){ alert(str); } NECO.prototype.METODA2 = function (){ var e = document.createElement('obr'); /* TOTO JE DULEZITE */ e.onclick = function (){ this.METODA('LOL'); } document.body.appendChild(e); } } A tady nastava problem ukazatel this se uvnitr onclick funkce stava ukazatelem na element e a ne na objekt.Tim padem metoda this.METODA('LOL') neexistuje. Nelze vsak pouzit ani NECO.METODA('LOL'); Prosim poradte jak k onclick udalosti elementu e priradit metodu objektu DIKY MOC |
||
pperna Profil * |
#2 · Zasláno: 21. 8. 2005, 02:41:07
*oprava:
var e = document.createElement('obr'); má být : var e = document.createElement('img'); |
||
Fred Profil |
#3 · Zasláno: 21. 8. 2005, 08:49:03 · Upravil/a: Fred
Tomu nerozumím, proč tak složitě? Nestačilo by
function metoda(str){alert(str);} function metoda2(){ var e=document.createElement('img'); e.onclick=function(){metoda('LOL');} document.getElementsByTagName('body')[0].appendChild(e); }} |
||
pperna Profil * |
#4 · Zasláno: 21. 8. 2005, 17:39:38
Mno prave ze ne, chtel bych to mit vse zapouzdrene v jednom objektu.
Opravdu neexistuje zpusob jak to udelat? |
||
izsak Profil |
#5 · Zasláno: 21. 8. 2005, 18:09:17
Udalostné skriptovanie stránok by mohlo pomôcť.
|
||
Fred Profil |
#6 · Zasláno: 21. 8. 2005, 19:08:41
pperna No já moc (spíš vůbec) terminologii neumím, možná kdybych věděl co to má dělat?
|
||
pperna Profil * |
#7 · Zasláno: 22. 8. 2005, 20:10:16
Jedná se o WYSIWYG HTML editor (Jako Word)
Mám objekt,v něm potřebuji vytvořit menu a mam na to metodu drawMenu. Ke každému buttonu chci přiřadit při onclick metodu editorCommand(com). Vim jak to udelat aniz by editorCommand byla vnitřní fce objektu/metoda/ Alepotřebuji znát řešení pro metodu objektu. Díky |
||
pperna Profil * |
#8 · Zasláno: 22. 8. 2005, 22:24:42
Tak už jsem to vyřešil.
Vše co jsem potřeboval vědět bylo: e.onclick = function (){self.Editor..METODA('LOL'); } kde var Editor = new NECO(); Každopádně díky všem přispívajícím :) |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0