Po překreslení nefunguje ajax

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

Ahoj, mám seznam výrobců což jsou checky a pod nimi mám seznam produktů kde u každého je také checkbox na který mám navázaný handle který uloží jeho id do session. Po zaškrtnutí checku u výrobce překreslím produkty…to funguje v pořádku, ale po tomto překreslení se mi již nezavolá událost na klik u produktu…před filtrováním podle výrobce, kde mám vypsané všechny produkty vše funguje ok. Zde přikládám kód šablony:

<script>
	$(function () {
		$(".table tbody input[type=checkbox]").click(function(){
			if ($(this).is(':checked')) {
				var checked = 1;
			}
			else {
				var checked = 0;
			}
			$.ajax({
			   url: {link setCheckboxValue!},
			   data: {
						value: $(this).val(),
						checked: checked
					}
				}).done(function(){

				});

		});
	  });
</script>
{snippet blogs}
	<table class="table table-hover">
		<thead>
			<tr>
				<th>
					Název
				</th>
				<th>
					<span class="line"></span>Popis
				</th>
			</tr>
		</thead>
		<tbody>
			{if $products}
				{foreach $products as $product}
			<tr>
				<td>
					<input type="checkbox" />
					{$product->title}
				</td>
				<td class="description">
                                        {$product->description}
				</td>

			</tr>
				{/foreach}
			{else}
			<tr>
				<td colspan="2">Nenalezeny žádné produkty</td>
			</tr>
			{/if}
		</tbody>



	</table>
    {/snippet}

Po prekresleni se vubec neprovede js na klik a netusim proc. diky za rady

Editoval spiider (9. 9. 2013 21:59)

David Matějka
Moderator | 6445
+
0
-

jelikoz se smazal a znovu pridal prvek, na ktery byla udalost navazana. moznosti je nekolik – do jquery 1.8 se muze pouzit live (ale radsi nepouzivej) nebo muzes po dokonceni requestu udalosti na checkboxy znovu navazat nebo muzes pouzit on

Editoval matej21 (9. 9. 2013 22:03)

spiider
Člen | 162
+
0
-

aha…a nejaky priklad by mi pomohl…nevim moc jak na to spravne…diky

David Matějka
Moderator | 6445
+
0
-

zkus

$("body").on("click", ".table tbody input[type=checkbox]", function(){
....
Jiří Nápravník
Člen | 710
+
0
-

A co dat ten <script> pod {snippet}, to by mělo taky fungovat ne?

spiider
Člen | 162
+
0
-

Matej21: Funguje díky moc

Editoval spiider (9. 9. 2013 23:29)

spiider
Člen | 162
+
0
-

A jeste jeden dotaz, ty checky mam stylovane pomoci pluginu jquery.uniform.min.js ktery si v sablone take nacitam (mam to v {block js}…{/block})…a po vybrani vyrobce a prekresleni se mi styl z checku u produktu vytrati, takze bych ho potreboval take nejak refreshnout.....davat cely block js do snippetu se mi nechce jelikoz tam toho mam vice…neni nejaka lepsi cesta? Diky

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

Použij nette.ajax.js a věřím, že mnoho tvých problémů se stane minulostí :).

Stačí zaregistrovat kód, který inicializuje jquery.uniform.js (resp. jakýkoliv kód, který se binduje na HTML uvnitř snippetu) do extenze:

$.nette.ext({
	load: function () {
		// inicializační kód
	}
});
spiider
Člen | 162
+
0
-

Funguje diky za pomoc