Připojení javascriptu po proběhnutí ajaxu

martyk
Člen | 17
+
0
-

Zdravím,

nevím si rady s jedním asi jednoduchým problémem. Mám dva multiselecty na které aplikuji jQuery plugin Chosen https://harvesthq.github.io/chosen/. A fungovat to má tak, že po výběru hodnot z prvního výběru se ajaxem aktualizují možnosti k výběru v druhém multiselectu. Můj problém je v tom, že potom co ajax proběhne a odpovídající položky se správně nahrají do druhého multiselectu, tak se už nepřipojí ten požadovaný vzhled.

Zkoušel jsem tam ten Chosen připojit třeba takto, ale zatím bez výsledku. Asi tam budu muset nějak připojit i ty soubory s javascriptem a css, ale u toho jsem se zasekl. Teď totiž konzole vypíše, že $(…).chosen is not a function…

<script>
$.nette.ext('ajax', {
        success: function(payload) {
            $("#frm-generatorForm-prilezitosti").chosen();
        }
   	});
</script>

Děkuji za případné rady

CZechBoY
Člen | 3608
+
0
-

Já jquery pluginy aplikuji takto:

<script>
$.nette.ext('ajax', {
        init: function() {
			this.ext('snippets').after(function ($snippet) {
	            $("#frm-generatorForm-prilezitosti", $snippet).chosen();
			});
        }
    });
</script>

S tou neexistující metodou bych hádal že nemáš načtenou knihovnu.

Editoval CZechBoY (21. 6. 2018 10:48)

martyk
Člen | 17
+
0
-

Děkuji za odpověď. A jaké existují způsoby pro to připojení těch potřebných souborů? Mám je totiž jenom normálně v <head></head> a právě potom, co proběhne ajax, tak už tam na ně asi ten multiselect po překreslení nedosáhne. Je možné to nějak přidat třeba do toho zápisu $.nette.ext(‚ajax‘, {… ? Zkoušel jsem různě hledat, ale zatím v tom trochu plavu.

CZechBoY
Člen | 3608
+
0
-

V head by to mělo stačit, když se to jednou načte tak už by to mělo být načtené až do dalšího načtení celé stránky (tedy ne ajax).