nefunkční ajax – používá se normální request

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

Ahoj,
nemám s tím moc zkušeností, proto prosím o radu – mám snippet a odkazy, které ho mají překleslit, ale nepoužije se ajax, ale po kliknutí na odkaz se vždy provede reload celé stránky. Celkově to funguje a zobrazuje správné věci, jen to není ajaxem.
Můžu sem dát případně odkaz na na živý web, ale jen aby mě někdo nenařknul, že je to reklama.
Díky.

Link pro překreslení:

<a n:href="detail! detail=>$c['id']">

Šablona:

{snippet catalogDetail}
	....
{/snippet}

Presenter:

public function handleDetail($detail) {
	if($this->isAjax()){
		$this->invalidateControl('catalogDetail');
	}
	$this->template->cdetail = $this->context->catalogModel->fetchDetail($detail);
}

Používám ajax s jQuery: https://componette.org/search/?…

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

Nebinduješ to na odkazy s CSS třídou ajax?

Ascaria
Člen | 187
+
0
-

A máš odkazy javascriptem zajaxované? Něco jako:

<script>
        /* Ajaxová tlačítka */
        $('a.ajax, a.datagrid-ajax').off('click');
        $('a.ajax, a.datagrid-ajax').on('click', function(event){
            if(!event.isDefaultPrevented()){
                // Zobrazíme spinner
                $("#ajax-spinner, #ajax-spinner-bg").fadeIn('fast');
                // Načteme ajaxově stránku
                $.get(this.href);
            }
            // Zamezíme původnímu eventu
            event.preventDefault();
        });
</script>

A chybí ti u odkazu třída ajax asi no.

Editoval Ascaria (3. 4. 2012 12:14)

Filip111
Člen | 244
+
0
-

Díky, už jsem na to přišel.
V první řadě jsem neměl na odkazech ajax class.
Dále mi pak chyběl script pro zajaxování – ten od Ascaria mi nefungoval, ale pomohl ten co je přímo v dokumentaci:

$("a.ajax").live("click", function (event) {
    event.preventDefault();
    $.get(this.href);
});
Ascaria
Člen | 187
+
0
-

Live se prý nedoporučuje, protože to může způsobit overheat.