Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Mazání generovaných elementů

Martin
verified
rating uzivatele
(62 hodnocení)
19. 4. 2013 13:25:12
Ahoj všichni.
Moc se s jQuery nepotýkám a teď v tom potřebuju něco udělat. Zaseknul jsem se na jedný věci a nevím jak dál. Prosím o radu někoho zkušenějšího.
Potřebuju smazat element, který byl před tím vytvořený taky pomocí jQuery. konkrétně se jedná o skrytý input.
Mám x*y buttonů a každý z nich má jiný attribut data. Něco jako
Když někdo klikne na button, tak mi jQuery vytvoří na konci formuláře skrytý input např.
a k buttonu se přidá třída, která říká, že je označený.
Potom když někdo klikne na button, který je již označený, tak potřebuju onen dřív generovaný input odstranit.
Zkoušel jsem např.
Prolezl jsem dost diskuzí, zkoušel např. experimentovat s .find, ale prostě se nemůžu dobrat funkčního řešení.
Máte někdo prosím nějaký nápad?
Díky
Martin
19. 4. 2013 13:25:12
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892834
Macejko.sk
verified
rating uzivatele
(5 hodnocení)
19. 4. 2013 13:31:51
3-11-40
19. 4. 2013 13:31:51
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892833
Macejko.sk
verified
rating uzivatele
(5 hodnocení)
19. 4. 2013 13:33:03
3-11-40
19. 4. 2013 13:33:03
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892832
Macejko.sk
verified
rating uzivatele
(5 hodnocení)
19. 4. 2013 13:36:05
Takze ide o to v podstate, ze identifikator, ktory spaja div.bttn si ulozis do premennej, nasledne kontrolujes ci btn ma class oznaceny, ak ma, tak podla tohto identifikatoru si najdes div a jednodnucho zmazes.
Ospravednujem sa ak mam nejake syntakticke chyby, ale inac je to myslim spravne.
19. 4. 2013 13:36:05
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892831
Martin
verified
rating uzivatele
(62 hodnocení)
19. 4. 2013 13:42:32
Díky, ale asi jsem se ne úplně přesně vyjádříl. Tu kostru mám funkční. Mě jen nefunguje to odstranění inputu.
$('#' + $(this).data('data')).remove();
proběhne a nic neudělá. V this je ten button, který má attribut data-data '3-11-40'. takže se to bude asi označovat nějak jinak, ale nepřišel jsem na to jak.
19. 4. 2013 13:42:32
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892830
Macejko.sk
verified
rating uzivatele
(5 hodnocení)
19. 4. 2013 13:50:03
a si si isty ze, je presne ta informacia ktoru hladas?
Skus ju ulozit do premennej a urobit si alert. Budeme hned vediet, kde je problem.
ak alert bude prazny, tak skus ulozit do premennej
$(this).attr('data');
19. 4. 2013 13:50:03
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892829
Jaromir Fojtu
verified
rating uzivatele
(10 hodnocení)
19. 4. 2013 13:50:47
IMHO je zasadni problem v tom, ze ID se kterym se snazis pracovat zacina cislem...
19. 4. 2013 13:50:47
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892828
Martin
verified
rating uzivatele
(62 hodnocení)
19. 4. 2013 13:58:54
Tak se mi to asi podařilo vyřešit pomocí
Vypadá to, že to šlape jak má. Nevím, jestli jsem to správně pochopil, ale asi jQuery funkcí remove s ukazatelem #neco odstraní jen prvek, který existoval při načtení scriptu. Jinak se to musí najít přes .find. Nevím. Jinak díky za zapojení do diskuze všem.
---------- Příspěvek doplněn 19.04.2013 v 14:01 ----------
Napsal Michal Macejko;939549
a si si isty ze, je presne ta informacia ktoru hladas?
Skus ju ulozit do premennej a urobit si alert. Budeme hned vediet, kde je problem.
ak alert bude prazny, tak skus ulozit do premennej
Jo, je to html5 attribut data-neco. Když mi něco nefunguje, tak si samozřejmě všechno ověřuju přes alert, zda tam je to co předpokládám.
19. 4. 2013 13:58:54
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892827
ViPErCZ
verified
rating uzivatele
(21 hodnocení)
19. 4. 2013 14:28:07
Zkuste místo alert console.log() a pak nějaký správný nástroj v prohlížeči... FF například Firebug. Se toho dozvíte kapku víc než přes alert :-)
Podle mě:
$('#3-11-40'); najde správný input... i když teda to IDéčko je vyloženě všem něco říkající :-)
19. 4. 2013 14:28:07
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892826
Martin
verified
rating uzivatele
(62 hodnocení)
19. 4. 2013 14:36:16
Napsal ViPEr*CZ*;939570
Zkuste místo alert console.log() a pak nějaký správný nástroj v prohlížeči... FF například Firebug. Se toho dozvíte kapku víc než přes alert :-)
Podle mě:
$('#3-11-40'); najde správný input... i když teda to IDéčko je vyloženě všem něco říkající :-)
jak jsem psal výše, je to vyřešené.
19. 4. 2013 14:36:16
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892825
Bacon
verified
rating uzivatele
(2 hodnocení)
19. 4. 2013 14:59:40
Na generované prvky musíš použít live() (deprecated), resp. on().
19. 4. 2013 14:59:40
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892824
Martin
verified
rating uzivatele
(62 hodnocení)
19. 4. 2013 17:19:35
Napsal Bacon;939595
Na generované prvky musíš použít live() (deprecated), resp. on().
Aha, dík. Nastuduju.
19. 4. 2013 17:19:35
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892823
Macejko.sk
verified
rating uzivatele
(5 hodnocení)
19. 4. 2013 18:55:44
Napsal Bacon;939595
Na generované prvky musíš použít live() (deprecated), resp. on().
V tomto pripade nie. Live, delegate sa pouziva ak chces na dynamicky pridany element naviazat nejakz handle. Napr. taky onClick bude na dynamicky pridanom elemente fungovat len ak pouzijes live, co neodporucam, pretoze to vybublava po celej stranke, takze radsej urcite delegate ktory pripojis na najblizsi element. Ale v tomto pripade len vyhladavas urcity element a ides ho odoberat, je to jedno ci je dynamicky pridany alebo nie.
19. 4. 2013 18:55:44
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892822
Bacon
verified
rating uzivatele
(2 hodnocení)
19. 4. 2013 20:28:23
Napsal Michal Macejko;939700
V tomto pripade nie. Live, delegate sa pouziva ak chces na dynamicky pridany element naviazat nejakz handle. Napr. taky onClick bude na dynamicky pridanom elemente fungovat len ak pouzijes live, co neodporucam, pretoze to vybublava po celej stranke, takze radsej urcite delegate ktory pripojis na najblizsi element. Ale v tomto pripade len vyhladavas urcity element a ides ho odoberat, je to jedno ci je dynamicky pridany alebo nie.
Když jsem potřeboval přidávat, resp. odebírat vygenerované inputy, nedařilo se mi, dokud jsem nepoužil právě on(). Proto jsem to doporučil i Kejlimu. Mrzí mě, že jsem byl "vedle jak ta jedle", nejsem jQuery expert a těžce v tom tápu.
19. 4. 2013 20:28:23
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892821
Chybu musíte mít jinde, protože jQuery umí chytnout dynamicky generované prvky, i prvky, jejichž třída nebo ID chybně začíná číslicí (viz syntaxsugar výše).
Viz http://jsfiddle.net/scdFy/
Můj odhad je, že vytváříte více prvků se stejným ID, ale bez ukázky celého kódu jen hádám.
20. 4. 2013 14:51:57
https://webtrh.cz/diskuse/mazani-generovanych-elementu/#reply892820
Pro odpověď se přihlašte.
Přihlásit