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;
});
4

2 回答 2

25

正如他们在他们的文档中所说,这里 pjax会针对您的需要触发两个事件

pjax 将在您要求它加载您的响应正文的容器上触发两个事件:

pjax:start - 当一个 pjax ajax 请求开始时触发。

pjax:end - 当 pjax ajax 请求结束时触发。

以及为此的代码示例

$('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 });
于 2012-05-23T04:51:37.537 回答
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;
});
于 2012-05-23T05:27:08.940 回答