Nette ajax – můj script funguje jen poprvé
- n.u.r.v.
- Člen | 485
Ahoj mám tabulku a na konci odkaz na smazání řádku (s class ajax a používám nette.ajax.js).
Dále mám v main.js univerzální metodu pro vypsání confirm dialogu:
$('.show_confirm').click(function (e) {
if (confirm($(this).data('confirm_text')) == false) {
e.stopImmediatePropagation();
return false;
}
});
A odkazy pro mazání takto:
<a href="{plink deleteUserListItem! $primary}" class="ttip ajax show_confirm" data-confirm_text='Text pro confirm dialog' ><i class="fa fa-trash"></i></a>
Funguje to dobře – při prvním smazání se objeví confirm a po potvrzení se položka smaže, ale když pak chci hned smazat další položku tak už se nevypíše dialog ale dojde ihned k ajax requestu a ke smazání položky…
Aktuálně mám $.nette.init(); a můj script obalený snippetem který při mazání překresluji..
Co s tím? díky
Editoval n.u.r.v. (4. 10. 2017 10:26)
- Ot@s
- Backer | 476
Problém bude v tom, že první požadavek Ti vrací snippet aktualizovanou
tabulkou. To má za následek, že máš resetované ono konfirmování, viz.
kontrukce $('.show_confirm').click(...)
. Potřebuješ po
překreslení snippetu znovu spustit definici výše uvedeného JS. Podívej se
do extensions
nette.ajax a napiš si obsluhu události success (aby se
pokaždém úspěšném ajax requestu provedlo volání
$('.show_confirm').click(...)
). Možná už to někdo řešil
i ve fóru.
- n.u.r.v.
- Člen | 485
Ahoj, tak jsem teď zjistil že to funguje jen částečně – sice už se zobrazí confirm dialog vždy, ale funguje jen při prvním kliknutí – jakmile se provede jeden ajaxový požadavek, tak když kliknu znova na ikonu mazání dalšího řádku, tak i když pak v zobrazeném dialogu dám zrušit, tak se ajax provede a řádek smaže…
- johnnie
- Člen | 54
Asi neodpoviem na tvoju otazku ale mozno ti to pomoze :)
ja pouzivam confirm.ajax.js a funguje to bez problemov