JS fungující jak před překreslením tak i po překreslení snippetů

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

Nevím si moc rady s tím, jak napsat JS, který bude fungovat jak před překreslením snippetu tak i po překreslení. Mám např. takovýto kód:

(function() {
    function close() {
        $('.close').click(function() {
            $(".flash").hide();
        });
    }

    close();

    $.nette.ext({
        load: close
    });
})();

Je to kód na zavírání flash zpráv po kliknutí na křížek v jejich divu. Ten kód je tam prakticky ve dvojí verzi. Jednou je pro obyčený neajaxový request, kdy se po načtení stránky ojeví flash zpráva (to je to ruční zavolání funkce close uprostřed). Pak je tam ta část s nette.ajax doplňkem, kdy to zase funguje v případě, že jsem něco udělal přes ajax a následně se mi objeví flash zpráva, kterou zavřu kliknutím na onen křížek. Mě jde o to, jak to napsat tak, abych to nemusel volat takto dvakrát, protože si myslím, že to, jak to dělám já není úplně správně. Sice to funguje, ale myslím, že použát by se to mělo jinak, ovšem právě v tom bych rád požádal o radu.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Nu, to ruční zavolání by skutečně nemělo být potřeba, protože událost load je v nette.ajax.js vyvolána hned po načtení stránky. Takže tento kód by měl stačit:

$.nette.ext({
	load: function() {
		$('.close').click(function() {
			$('.flash').hide();
		});
	}
});

$.nette.init();