IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: JS dynamické schování odstavce

V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
jan.vencl
Tvůrce
Avatar
jan.vencl:23.1.2013 12:11

Ahoj , poprosím o radu. Mám v divu odstavce. Defoultně je tam jeden

<div id='polozky'>
<p> <img src='xx' onclick='TADYTOU FUNCKCI-SMAZAT-odstavec()'>neco:<input type='text'>neco2<input type='text'>:/p>
</div>
<img onclick='pridamodstavec()'>

přidání odstavce je jednoduchá záležitost. Nicméňe jak řešit to smazání po kliknutí na odkaz nebo obrázek.
Napadají mě řešení replace(), hide() nebo něco jako remove child boužel replace ani hide mi nějak moc nefunguje :( Velice rád budu za každou radu :)

 
Odpovědět
23.1.2013 12:11
Avatar
Odpovídá na jan.vencl
Drahomír Hanák:23.1.2013 12:16

V jQuery to můžeš udělat třeba takhle:

$(function() {
   $('[data-trigger="remove"]').click(function() {
      $(this).parents('p').remove();
   });
});

Pak ti stačí tomu obrázku přidat atribut data-trigger="remove" a po kliknutí se vymaže element p, ve kterém je zabalený.

 
Nahoru Odpovědět
23.1.2013 12:16
Avatar
jan.vencl
Tvůrce
Avatar
jan.vencl:23.1.2013 12:23

tohle mi nefunguje mám nalinkované jQuery i soubor ve kterém je ta funkce a nešlape to:(

 
Nahoru Odpovědět
23.1.2013 12:23
Avatar
Odpovídá na jan.vencl
Drahomír Hanák:23.1.2013 12:28

Mně to funguje celkem bez problému. Zkoušel jsi se podívat třeba do konzole (chrome nebo firebug), co se tam píše?

 
Nahoru Odpovědět
23.1.2013 12:28
Avatar
jan.vencl
Tvůrce
Avatar
jan.vencl:23.1.2013 12:34

console v chrome nic firebug nevim kdeje :D a neni mozne ze je problem s uvozovkami? ten odstavec tam je defoultně jeden generovaný php a ostatní jsou generované JS a u obou jsou jednoduché uvozovky '

 
Nahoru Odpovědět
23.1.2013 12:34
Avatar
Odpovídá na jan.vencl
Drahomír Hanák:23.1.2013 12:53

Aha, ty je přidáváš JavaScriptem. To pak zkus místo $('[data-trigger="remo­ve"]').click(fun­ction() { ... }); použít $('[data-trigger="remo­ve"]').live('clic­k', function() { ... });

jQuery totiž událost zaregistruje přímo na prvek (resp. na všechny prvky, které se pojí s tím selektorem). Tím pádem, pokud přidáš další element, už nebude mít zaregistrovanou tu událost. Live ale zaregistruje událost na element body a tak bude platná i pro prvky přidané javascriptem.

 
Nahoru Odpovědět
23.1.2013 12:53
Avatar
jan.vencl
Tvůrce
Avatar
jan.vencl:23.1.2013 13:02

Drahoši opět si mi velice pomohl, řeším to tu od 10:00 moc děkuji :):):)

 
Nahoru Odpovědět
23.1.2013 13:02
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.