nette.ajax.js – Odhchycení ajax dotazu před odesláním
- Klainer
- Člen | 42
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
Řá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.