Confirm po ajaxovem požadavku

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Tirus91
Člen | 199
+
0
-

V případě, že dojde pomocí ajaxu k načtení další várky dat do gridu, tak mi přestane fungovat confirm u A tagů

u řádku z gridu mám

<a data-dialog-class="modal-dialog modal-danger"
      data-confirm-button-class="btn btn-primary"
      data-cancel-button-class="btn btn-default"
      data-text="Opravdu si přejete smazat klienta '{$row->name}'  Ič: {$row->ic} [#{$row->id}]?"
      class="confirmDialog btn-xs btn-danger btn "
      href="{plink removeClient!, $row->id, backlink=>$presenter->storeRequest()}"><i
               class="glyphicon glyphicon-trash fa fa-trash-o icon-trash"></i></a>

a následně v JS v @layout.latte mám jen

<script type="text/javascript">
        init.push(function () {
            // Javascript code here
        });
        $(document).ready(function () {
            $.nette.init();
            $(function () {
                $('.confirmDialog').confirm({
                    confirmButton: 'Ano',
                    cancelButton: 'Ne'
                });
            });
        });
    </script>

Chápu, že událost confirm musím znovu navázat na prvky po ajaxovém requestu, ale kde přesněji to musím udělat? Prosím o krátké nakopnutí

roman.campula
Člen | 60
+
0
-

Tak toto by mne také zajímalo. Pokud jsi již zjistil jak zajistit, aby bylo možné po AJAXovém požadavku opět volat JS funkce ve znovunačtené části stránky, napiš to sem. Díky.

Martk
Člen | 661
+
0
-
$('body').on('click', '.target', function () {});

// nebo

$.nette.ext('reloadScripts', {
	complete: function () {
		// Code
	}
});
roman.campula
Člen | 60
+
0
-

Díky moc, toto funguje (využita první varianta). Tuto funkci jsem hledal dnes čistého času cca 5 hodin. Škoda, že to není v dokumentaci Nette.

Pavel Macháň
Člen | 282
+
+2
-

@roman.campula @Tirus91 Já to dělám takto.

$.nette.ext('afterSnippets', {
        init: function () {
            this.ext('snippets').after(function ($el) {
                $el.find('.confirmDialog').confirm({
                    confirmButton: 'Ano',
                    cancelButton: 'Ne'
                });
            });
        }
    });

roman.campula napsal(a):

Díky moc, toto funguje (využita první varianta). Tuto funkci jsem hledal dnes čistého času cca 5 hodin. Škoda, že to není v dokumentaci Nette.

V dokumentaci to není, protože nette.ajax.js není součástí nette

Editoval Pavel Macháň (25. 2. 2016 13:03)

Tirus91
Člen | 199
+
0
-

Já jsem to začal dělat úplně jinak :)Toto jsem totálně vyhodil zatím, jelikož využívám Grido a to si to samo řeší, ovšem začal jsem řešit jiné problémy s ajaxem a to je formulářová validace (ale to je na jiné vlákno a celkem i počítám, že se to tu již řešilo).