visual paginator – ajax hook
- Landsman
- Člen | 152
Ahoj,
rád bych přes JS prohodil text v tlačítku po AJAX stránkování (funguje korektně vč. historie) ale nevím, co dosadit do prvního parametru $.nette.ext(). Vyzkoušel jsem paginator (nazev snippetu), p-ShowPage a podobně.
function ajaxPaginator()
{
var a = $(".ajax-paginator");
a.click(function()
{
var _d = $(this).text();
var _n = $(this).attr("data-text-loading");
// change title
$(this).text(_n);
$.nette.ext('posts', {
success: function ()
{
$(this).text(_d);
}
});
});
}
Jak ho zjistím? Je obecné pravidlo? Díky.
- Landsman
- Člen | 152
CZechBoY napsal(a):
Pokud tvoříš extension tak je na tobě jaký název použiješ, jen musí být unikátní.
Rozumím, bohužel nemohu dohledat jaký je použit tady.
Ještě se zeptám – dá se udělat ještě jeden script, nezávisle na
rozšíření, který se vykoná po ajax callu té excension?
- Landsman
- Člen | 152
akadlec napsal(a):
Záleží kdy jej chceš vykonat. Obecně má ajax eventy a můžeš se pověsit na ně. Zkus blíže popsat jak má ta událost vypadat.
Mám custom šablonu, kde je „append paginator“. Tzn po kliku na button „Načíst dalších 20 příspěvků“ změním text v tlačítku na „Načítám …“ a po jeho úspěšném vykonání bych jej rád vrátil zpět na původní hodnotu. Triviální akce :)
Tak mě zajímá na jaký event ajax paginatoru se mám napojit.
Případně existuje nějaký obecný postup, jak tyto eventy / hooky
zjistit?
- akadlec
- Člen | 1326
No ono můžeš si udělat extension pro paginator která ti toto bude řešit. Mohla by vypadat nějak takto (psáno z hlavy)
$.nette.ext('customPaginator', {
before: function(xhr, settings) {
if (!settings.nette) {
return;
}
this.isPageButton = settings.nette.el.hasClass('paginator');
if (this.isPageButton ) {
this.buttonCaption = settings.nette.el.text();
settings.nette.el.text('Nacitam');
}
},
success: function (payload) {
if (this.isPageButton ) {
settings.nette.el.text(this.buttonCaption);
}
}
}, {
isPageButton: false,
buttonCaption: '',
});
- Landsman
- Člen | 152
akadlec napsal(a):
No ono můžeš si udělat extension pro paginator která ti toto bude řešit. Mohla by vypadat nějak takto (psáno z hlavy)
$.nette.ext('customPaginator', { before: function(xhr, settings) { if (!settings.nette) { return; } this.isPageButton = settings.nette.el.hasClass('paginator'); if (this.isPageButton ) { this.buttonCaption = settings.nette.el.text(); settings.nette.el.text('Nacitam'); } }, success: function (payload) { if (this.isPageButton ) { settings.nette.el.text(this.buttonCaption); } } }, { isPageButton: false, buttonCaption: '', });
Teď tomu asi nerozumím. On teda není žádný vyhrazený hook přímo pro ten ajax paginatoru? Jak ta nově vytvořená extension pozná, že doběhl ajax request paginatoru se success payloadem?