Jak inicializovat odkaz s třidou ajax, který je vložený po úspěšném vykonáním ajaxu. (nette.ajax.js)

Adaimont
Člen | 3
+
0
-

Ahoj, mohl bych Vás poprosit o radu? Mám odkaz se třídou ajax. Pokud na něj kliknu vloží se mně pod tento odkaz podkategorie, které jsou odkazy, které mají také třídu ajax. Nicméně na tyto odkazy nejdou navázané event handlery. Takže pokud na ně kliknu, dojde k přesměrování. Já bych potřeboval, aby se chovaly stejně jako odkazy které se načtou s prvním zobrazením stránky. Tj. jak prosím mohu inicializovat nově vložený obsah? Předem děkuji za jakoukoli odpověď.

Nevyužívám snippety. Nový obsah vkládám na základě id kategorie, pod tuto kategorii.

Pokud bude potřeba kód, rád ho vložím, nicméně to možná nebude potřeba?

Ondřej Kubíček
Člen | 494
+
+1
-

tohle ale nemá nic společného s nette
předpokládám, že používáš jquery?

po přidání elementu do domu nefunguje klasické bindování, je potřeba to bindovat přes on

$("body").on("click", "a.ajax", function() {
	console.log('fired!');
});
Ondřej Kubíček
Člen | 494
+
0
-

sry ted si čtu nadpis, takže používáš nette.ajax.js :D
zkusil bych v success toho volání prvního ajaxu znovu initnout nette.ajax.js

CZechBoY
Člen | 3608
+
+1
-
$.nette.ext('abcdef', {
	init: function() {
		$.nette.load();
	}
});

zkus to takhle, ale mělo by to snad fungovat „by default“

Adaimont
Člen | 3
+
0
-

Dobry napad vyzkousim. ;) d. Ted nejsem u PC, ale pisnu jak to dopadlo, ale to by mohlo dopadnout. :D

Adaimont
Člen | 3
+
0
-

Parada funguje, pridavam kod. Dekuju za radu.

<script>
	$.nette.ext({
		success: function (payload, status, jqXHR) {
			if ($( '#' + payload.idCategorySelector ).data('level') == 0) {
				$level = $( '#' + payload.idCategorySelector ).data('level') + 1;
			} else {
				$level = $( '#' + payload.idCategorySelector ).parent().parent().data('level') + 1;
			}

			$padding = 10 * Math.log(3 + $level) - 10;

			$( '<div data-level="' + $level + '" style="margin-left:' + $padding + 'ex">' + payload.categories + '</div>' ).insertAfter( '#' + payload.idCategorySelector );
			$.nette.load();
		}
	});
</script>
Kcko
Člen | 465
+
0
-

Proměnná $level je globální, chybí Ti tam var. Celkově je ten kód divný i když možná (zatím) funkční.