Autor Zpráva
Darker
Profil
Dejme tomu že mám plochu, do které lze klikáním umisťovat libovolný počet nových objektů. A ty by měly za 10 sekund zmizet. Ale jejich ID se generuje náhodně, a je potřeba, aby mizely individuálně (ten co se dřív objevil dřív zmizí). Takže hned po vytvoření volám funkci na zmizení.
Ale vzhledem k tomu, že nikdy nevím, kolikrát bude zavolána musím vytvářet náhodnou proměnnou. To je targetsnamevariable.
Ale už jí neumim zrušit. A nemám jistotu, že se zrušila sama, takže potřebuju buď ujistit že ano a nebo vysvětlit, co dělat aby se zrušila. V budoucnosti bych mohl mít problémy s pamětí.

function treedeath(treeid) {targetsnamevariable=randomgeneratedid(4);eval(targetsnamevariable+"=treeid");setTimeout("document.getElementById("+targetsnamevariable+").parentNode.removeChild(document.getElementById("+targetsnamevariable+"))",10000)}

Funkce randomgeneratedid(4).
_es
Profil
Darker:
Nepoužívaj eval, ak to nie je nutné, a na definíciu premenných používaj vždy príkaz var.
JavaScript sa o vymazanie objektov z pamäti stará automaticky, ak už k nim nie možný žiadny prístup, tak ich (po čase) automaticky zmaže.
Darker
Profil
A ty máš nějaký nápad, jak to udělat bez eval?
_es
Profil
Darker:
A ty máš nějaký nápad, jak to udělat bez eval?

Inak mi to celé pripadá nejaké divné, no ekvivalentné by asi malo byť:
window[targetsnamevariable]=treeid;
A prečítaj si a aplikuj toto.
Darker
Profil
To už jsem četl. Ale dokud jsem neznal alternativu, neměl jsem jiné východisko. Sem jsem to dal mimochodem také proto, že jsem čekal že mi třeba někdo navrhne lepší řešení, a proto jsem rád za tvůj návrh a určitě to vyzkouším.
Akorát bych se chtěl ještě zeptat, na jakém principu je to založené, nikdy jsem nic takového neviděl.
Dík :)
_es
Profil
Darker:
To už jsem četl.
Tak prečo to neaplikuješ aj na volanie setTimeout alebo to radšej celé neprerobíš do nejakého normálneho tvaru?
Vyrábanie nedeklarovaných globálnych premenných oboma spôsobmi nie je dobrý nápad.
Mimochodom, celé to vyzerá nejako nezmyselne.
Akým spôsobom by sa mal v dokumente podľa teba ten HTML element s takým id objaviť, keď ho chceš odstrániť?

Akorát bych se chtěl ještě zeptat, na jakém principu je to založené, nikdy jsem nic takového neviděl.
V tých dvoch príspevkoch v tom odkaze si aj to nájdeš.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0