Как запустить jQuery до и после загрузки pjax?
В настоящее время я использую pjax, и он отлично работает, но мне нужно запустить две функции jQuery, один до того, как pjax загрузит новый url и один после загрузки нового url, как я могу это сделать?
Я пробовал следующие два варианта, но ни один из них не работает?
Первая попытка:
$("a").pjax("#main").live('click', function(){
//Function Before Load
// Function After Load
})
Вторая попытка:
$("body").on("click", "a", function(){
//Function Before Load
$(this).pjax("#main");
//Function After Load
return false;
});
Ответы
Ответ 1
Как говорится в своем документе здесь pjax
запускает два события за то, что вам нужно
pjax запустит два события в контейнере, который вы попросили загрузить ваше тело ответа в:
pjax: start - запускается, когда начинается запрос pjax ajax.
pjax: end - вызывается, когда заканчивается запрос ajax pjax.
И пример кода для этого
$('a.pjax').pjax('#main')
$('#main')
.on('pjax:start', function() { //do what you want to do before start })
.on('pjax:end', function() { //after the request ends });
Ответ 2
$("body").on("click", "a", function(){
$(this).pjax("#main");
$('a.pjax').pjax('#main')
$('#main').on('pjax:start', function() { /* your code before ajax load */ });
$('#main').on('pjax:end', function() { /* your code after ajax load */ });
return false;
});