Nativ osztályok bővitése
Hello guruk! Aszt hiszem ez a legjobb hely hogy feltegyem a kérdésemet!
Mondjuk, hogy kezdő vagyok a témában, nekem túl bonyolult a cikk, de a szerző vagy más olvasó lehet tudna nekem segíteni.
példának egy konkrét problémámat vetem fel.
a Event constructor-t szeretném úgy módosítani, hogy amikor az létre hoz egy új event objektumot akkor automatikusan ellenőrizze le, hogy a objektumnak van e 'target' tulajdonsága, és ha nincs akkor keresse meg a srcElement-et és másolja bele a target-be. Persze ezt úgy akarom, hogy beavatkozás nélkül történjen meg, lehetséges ez valahogy hogy a nativ osztályokat valahogy ki bővíteni egy olyan kóddal ami automatikusan lefut létrehozás után vagy a legvégén?
Hálás lennék ha valaki segítene ebben itt vagy mailben: karvaly007[kukac]gmail[pont]com cimen.
Előre is köszönöm. és ha már volt akkor elnézést.
■ Mondjuk, hogy kezdő vagyok a témában, nekem túl bonyolult a cikk, de a szerző vagy más olvasó lehet tudna nekem segíteni.
példának egy konkrét problémámat vetem fel.
a Event constructor-t szeretném úgy módosítani, hogy amikor az létre hoz egy új event objektumot akkor automatikusan ellenőrizze le, hogy a objektumnak van e 'target' tulajdonsága, és ha nincs akkor keresse meg a srcElement-et és másolja bele a target-be. Persze ezt úgy akarom, hogy beavatkozás nélkül történjen meg, lehetséges ez valahogy hogy a nativ osztályokat valahogy ki bővíteni egy olyan kóddal ami automatikusan lefut létrehozás után vagy a legvégén?
Hálás lennék ha valaki segítene ebben itt vagy mailben: karvaly007[kukac]gmail[pont]com cimen.
Előre is köszönöm. és ha már volt akkor elnézést.
Saját konstruktor
Úgy, ahogy te szeretnéd nem
Láttam valaki át tette a
Minden esetre akkor marad a régi megoldás, miszerint a Event egy példányát átadjuk egy függvénynek ami megcsinálja a dolgokat, sokat gondolkodtam ezen a dolgon, de így már nem töröm tovább a fejem ez miatt.
És köszi a törődést! BéKE!
Ja, amúgy az osztály
ja igyekszem it hejesen irni
Igényesség
A másik, hogy itt kialakítasz magadról egy képet. Én szakmai interjún meg szoktam kérdezni a jelölttől, hogy milyen fórumokon aktív. Ha azt látom, hogy slendrián, igénytelen irományokat ad ki a kezéből, az erősen ellene szól, mert azt feltételezem, hogy akarva-akaratlan ilyen dokumentációkat, e-maileket fog írni.
+1
Más kérdés, hogy ez az LY-J
ÚJ MAGYAR HEJESÍRÁSI SZABÁJZAT
Télleg király lenne :)))))
A hagyományok sokszor
nagyon elszakadtunk a témától
Na most ott tartok, hogy az
IE 8 - Az objektum nem támogatja ezt a tulajdonságot vagy metódust.
FF 3.6 - "uncaught exception: [Exception... \"Illegal operation on WrappedNative prototype object\" nsresult: \"0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)\" location: \"JS frame :: http://localhost/core/test.js :: anonymous :: line 27\" data: no]"
Chrome 9 - Uncaught TypeError: Illegal invocation (anonymous function)
Opera 11 - Uncaught exception: Error: WRONG_THIS_ERR
Szóval mind a 4 böngésző hibát dob, de ugyan akkor végbe is megy a stopPropagation().
Ezt tudja valaki miért lehet?
Nincs ilyen
Event
objektumot, ezért kapod a hibát. Valamint IE alatt nincs isstopPropagation
metódusa azEvent
objektumnak. Mint említettem erre más megoldást kell használnod.A
for..in
nem biztos hogy minden tulajdonságot lemásol, mivel vannak olyan tulajdonságok amik nemenumarable
-ok, és ezeket afor..in
ciklus kihagyja.Mozilla böngészők alatt, és lehet hogy Webkit és Opera alatt is az Event egy natív objektum típus, ezért felüldefiniálása nem szerencsés. Ez mindenfajta hibát szülhet, ami kihathat az egész oldal működésére. Használj valami más nevet az objektumod konstruktorához.
Nemrégiben írtam egy böngésző független eseménykezelő könyvtárat, érdemes lehet azt megnézni, annak módszereit használni.
//
Valószínű az lesz, hogy inkább az eredeti event objektumot terjesztem ki és nem újjat csinálok belőle...
És bocs ha esetleg hülyeségeket írok, de csak hobbiból scriptelgetek és a magyar könyvek nagyon gagyik, angolul meg alig tudok, hogy valami külföldi site-on nézzek utána az implementációknak és ajánlásoknak...
Több kérdésem nincs egyenlőre, köszönöm az eddigieket... BéKE!
Nekem az extjs-es Observable
Én valahogy így képzelem el:
Szerintem elég elvadult ötlet eseménykezelőkkel csináltatni az eseménykezelők hozzáadását meg elvételét, de ezért szeretem :D Utóbbi időkben nagyon rákattantam az eseménykezelőkre, mert nagyon egyszerű velük lazán csatolt kódot létrehozni.
Ext.Element
Az eldurvult ötletekkel sokszor az a baj, hogy nem nagyon hatékonyak, pedig az nem elhanyagolható szempont. :)
Hogyan teszteljem rajta a
Köszönöm!
Ma (vagyis tegnap) átnéztem az oldaladon a könyvtárat amit írtál esemény kezelésre! Azon a vonalon haladva és a jQuery-ből merített ötletek alapján végre megoldottam a böngésző független esemény kezelést, sikerült megoldani az automatikus paraméter átadást, és a kapott event már a szabvány szerint müködik!
Kössz Poetro!
target vs. this
Amikor megnéztem a library-t amit linkeltél készítettem én is egy hasonlót, a függvényt, ami lekezeli a eseményt ugye dinamikusan gyártjuk le. Te valahogy így:
appendChild
Egy újabb problémába ütköztem! Aki ráér segíthetne pár okossággal!
Van egy div-em amibe appendChild-el beteszek egy elemet, és azt akarom, hogy ilyenkor lefusson egy kód. Ezt úgy gondoltam hogy felülirom a Node.prototype.appendChild függvényt. Most csak részleteket közölnék:
Ha a Element-et, vagy a HTMLElement-et babrálom, Explorerben és Firefoxban akkor sem működik pl egy HTMLDivElement-el mert itt mindig új metódust kapnak. Csak akkor megy ha közvetlen a HTMLDivElement-et írom át, de ha ezt tenném akkor a specifikációban szereplő összes elemre egyenként kéne ezt megtenni hogy minden fajta elemre alkalmazni tudjam.
Gondolom ti már foglalkoztatok ilyen kérdéssel, és tudtok segíteni.
Közben tovább folytattam a kisérletet:
Explorer-ben akkor sem megy ha közvetlen a HTMLDivElement-et egészítem ki, míg Chrome-ban működik ha a Node-ot írom felül.
Tehát:
Opera és Chrome - Node.prototype.appendChild öröklődik a HTMLDivElement-re rendesen.
Firefox - csak akkor működik, ha a HTMLDivElement.prototype.appendChild-et írom felül.
Explorer - itt meg semmi sem működik, müködik az appendChild de nem ugrik fel az alert ablak.
Nem érdemes
Értem
Amúgy köszönöm a hozászolást, elsőre én is arra gondoltam, hogy ezt így nem érdemes megoldani, de hát úgy voltam vele, hogy mindent ki kel próbálni. :)
Most pl. annyit levontam az esetből, hogy ugyan a DOM osztályok között van öröklődés de csak a működésben, és a konkrét metódusok nem öröködnek csak létre jönnek ugyan azzal a névvel és funkcióval (Firefox), ritkán a tényleges öröklődés előferdül (Opera, Chrome), és olyan is van, hogy van ugyan HTMLDivElement osztály definíció de ami abból származik ez nem örököl semmit a natív metódusokból, nem hogy a Node-tol örököljön valamit (Internet Explorer).
De ha definiálunk egy rohadjMegInternetExplorer tulajdonságot az öröklödik.
Nem mondtam