Po ajaxizaci formuláře přestane fungovat jquery
- Thommie
- Člen | 34
Ahoj,
mám tento formulář ve foreach:
<div class="kosik-wrapper">
{snippet kosik-wrapper}
{snippet vsechny-polozky}
{foreach ...}
<div class="zmena_poctu js-zmena-poctu">
{form formZmenaPoctu id => "frm-formZmenaPoctu_".$pol->id}
<button type="submit" name="button_add" class="button secondary no-outline js-zmena-poctu-btn-kosik">
{snippet zmena-poctu-kosik-$pol->id}
<input type="text" class="text-center input-group-field js-pocet-input" name="pocet" value="{$pol->pocet}">
{/snippet}
<button type="submit" name="button_remove" class="button secondary no-outline js-zmena-poctu-btn-kosik">
{/form}
</div>
{/foreach}
{/snippet}
{/snippet}
</div>
a potřebuji ho odesílat ajaxem. Třídu ajax mám v presenteru
$form->getElementPrototype()->class("ajax");
. Mám
nalinkované všechny potřebné js.
Ajax normálně funguje, odesílá se a snippet se správně přepisuje, ale potíž je v tom, že mi přestalo fungovat jquery pomocí něhož měním počet v inputu (.js-zmena-poctu-btn-kosik).
$('.kosik-wrapper').on('click', '.js-zmena-poctu-btn-kosik', function() {
var inp = $(this).closest('.js-zmena-poctu').find('.js-pocet-input');
var akce = $(this).data('addremove');
var stara_hodnota = inp.val();
//stanovení nové hodnoty
if(akce == 'add') {
inp.val(++stara_hodnota);
} else {
if(stara_hodnota > 1) {
inp.val(--stara_hodnota);
}
}
});
Ve chvíli, kdy z fomuláře odeberu .ajax, tak se jquery rozběhne. Vím,
že potřebuji obalit všechno do snipetu a pak ještě do jednoho a jquery
událost zavěsit nad všemi snipety (.kosik-wrapper)
, ale ani to
nepomáhá. zvláštní je, že už v této šabloně jeden ajax mám a s tím
funguje jquery dobře, poté, co jsem událost změny počtu zavěsil na
rodičovský prvek nad snipetty, ale nechápu, proč nefunguje toto.
Neměl by někdo nějaký tip?
Díky za pomoc
Editoval Thommie (11. 4. 2018 23:00)