Вопрос по jquery, javascript, ajax – Как запустить jQuery до и после загрузки pjax?

8

Я сейчас использую 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;
});
Вы пробовали, что вdocs? Christian Varga
@ChristianVarga Я пропустил эту часть, подумал, что раздел jQuery закончен после того, как он перешел на сторону сервера. Dan

Ваш Ответ

2   ответа
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;
});
24

Вот pjax запускает два события для того, что вам нужно

pjax will fire two events on the container you've asked it to load your reponse body into:

pjax:start - Fired when a pjax ajax request begins.

pjax:end - Fired when a pjax ajax request ends.

И пример кода для этого

$('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 });

Похожие вопросы