Autor | Zpráva | ||
---|---|---|---|
pik Profil * |
#1 · Zasláno: 23. 4. 2007, 12:58:48
Dobry den,
mam jeden problem. Potreboval bych pomoci jedne promene predavat DOM uzly. Zkousel jsem pomoci object a array a bezvysledne Priklad: test = function () { var uzel1 = document.createElement ('p') var uzel1Text = document.createTextNode ('dasdas dasdsa'); uzel1.appendChild (uzel1); var uzel2..... predanaPromena = new Object (); predanaPromena.Uzel1 = uzel1; predanaPromena.Uzel2 = uzel2; uzel1.onclick = function () { click(predanaPromena); } document.appendChild (uzel1);... } click = function (events) { // ted je tu problem pracovat s tim uzlen, nemohu mu pridavat class nebo meni onclick atd.. events.Uzel1.onclick = function () { click2 (); } events.Uzel2.onclick = function () { click2 (); } } A tohle mi bouzel uz nejde:( |
||
Oswald Profil |
#2 · Zasláno: 23. 4. 2007, 14:43:55
Na tohle je ideální DocumentFragment:
var predanaPromena = document.createDocumentFragment(); |
||
peta Profil |
#3 · Zasláno: 23. 4. 2007, 18:06:59
pik
Neni mi jasne, co chces docilit? Uzel, ktery neni navazan na dokument na nejaky dalsi jakokdyby nebyl. Dalsi zajimavosti je, ze IE, FF, O se chova kazda jinak pri odesilani na pozadi, pokud pracujes s iframy a documentu. Chova se to jakoby dokument neuzavrel. Proste jednoducha vec... d = iframeXX.document; d.write(...nejaky formular...) d.formular.submit() a maler, tohle uz muze zlobit a pak chces jeste navratovou funkci, nedejboze. No, strasne mne to zlobilo. Vsechno fungovalo, v IE, kdyz jsem pridal alert(). Z nejakeho, mi zahadneho duvodu dokument uzavrel a vse probehlo jako ve firefox. Timto zpusobem jsem treba vytvarel skryty iframe pro odeslani http pozadavku. |
||
pik Profil * |
#4 · Zasláno: 25. 4. 2007, 10:31:55
Oswald: bohuzel to neni moc pouzitelne v nekterych prohlizeci
peta: Samozrejme, ze jsou prilozeny do dokumentu ty uzly. Jen bych proste rad predaval vice referenci v jedne promene. Abych nemusel psalt click = function (referenceProUzel1, referenceProUzel2) { ......... } aby stacilo click = function (referenceUzlu) { .... } Proste je zapouzdrit do nejakeho pole nebo objektu. V normalni Jave nebo C# to funguje. Tady v JavaScriptu zjevne ne :( |
||
los Profil * |
#5 · Zasláno: 25. 4. 2007, 13:44:26
Samozrejme, že v JavaScripte to funguje. Problém je, že nikde nevidím kedy a v akom kontexte tú premennú deklaruješ kľúčovým slovom var. Ďalší problém je, že "to nefunguje" je dosť všeobecný opis problému...
Je dosť možné, že premenná predanaPremenna je v tých funkciách stále jedna a tá istá premenná a keď s ňou ďalej pracuješ, tak si vlastne zmeníš aj hodnoty v obslužných funkciách (viď JavaScript closures). |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0