nette.ajax.js – Odhchycení ajax dotazu před odesláním

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

Dobrý den,
snažím se odchytitit a trošku poupravit ajax požadavek, předtím než se provede. Používám rozšíření nette.ajax.js. Bohužel se mi nedaří tohle úspěšně realizovat a vždy se provedou požadavky dva, původní a ten který bych chtěl aby ho nahradil.

Způsob jakým to realizuji je zde:

	$.nette.ext({
	        load: function () {
	            $('[data-confirm]').click(function (event) {
	                var obj = this;
	                event.preventDefault();
	                event.stopImmediatePropagation();

			        if($(obj).attr("data-filtered") != "true"){
			        	 $.get(this.href);
			        } else {
			        	 var price =  $('#range_product_price').val().split(';');
			        	 console.log(price);
			        	 $.get(this.href+'&priceFrom='+price[0] +'&priceTo='+price[1] );
			        }


	                return false;
	            });
	        }
	    });

Soubor který ajax požadavek vyvolává:

{* Stránkování *}
{if $paginator->getPageCount() > 1}
<div class="">
    <ul class="pagination right">
        {if !$paginator->first}
            <li class="disabled"><a class="ajax" data-filtered="true" href="{link this, page => $paginator->getPage() - 1}">«</a></li>
        {/if}

        {for $i = 1; $i <= $paginator->getPageCount(); $i++}
            <li {if $paginator->getPage() == $i}class="active"{/if}><a  class="ajax" data-ajax-off data-filtered="true" href="{link this, page => $i}">{$i}</a></li>
        {/for}

        {if !$paginator->last}
            <li><a  data-filtered="true" href="{link this, page => $paginator->getPage() + 1}">»</a></li>
        {/if}
    </ul>
</div>
{/if}
{*Konec - Stránkování*}

Jak píši výše uvedený kod se vyvolá, ale vyvolá se i původní tedy 2 požadavky na server (jeden bez parametrů a jeden s těmi parametramai co potřebuji). Což nechci.

Jak nějak elegantně přetížím původní metodu, který tyto ajax požadavky (a class=ajax) zpracovává ?

Moc děkuji za pomoc !

sKopheK
Člen | 207
+
0
-

Řádek 508 v nette.ajax.js říká „// default ajaxification (can be overridden in init())“, takže by mělo fungovat

$.nette.ext('init', {'load': function() { ... }});

Jinak bys mohl ty „speciální“ odkazy obsluhovat ve vlastním callbacku, metody kolem ajaxu by měly proběhnout při každém XHR.