目前,我正在将我的ajax调用转换为常规的$.pjax()调用。一切正常,但是ajax成功功能。我无法管理如何使用给定参数调用pjax成功函数。

我唯一可以使用的方法是定义pjax全局成功函数,以在每次pjax调用中进行调用:

   $(document).on('pjax:success', function(event, data, status, xhr, options) {

   });

但不幸的是,我想定义每个 call 特定的成功函数。

Ajax调用示例:
 $.ajax({
    url:"/myPage/myFunction",
    type:"POST",
    data:giveMeData(),
    success:function(data){$('#right_form').html(data);console.log('Success works!')}
 });

Pjax调用示例:
 $.pjax({
    url:"/myPage/myFunction",
    type:"POST",
    container:'#right_form',
    data:giveMeData(),
    success:function(){console.log('Success works!')}
 });

最佳答案

我不相信jQuery PJAX库支持将“成功”函数直接传递给$ .pjax调用,尽管我怀疑您可以使用$(document).on('pjax:success')回调及其options属性来解决此问题,以实现相同的功能。

例如,说您的请求与上面的类似,但是您想要有一个自定义的成功回调,可以使用如下代码:

 $.pjax({
    url:"/myPage/myFunction",
    type:"POST",
    container:'#right_form',
    data:giveMeData(),
    custom_success:function(){console.log('Custom success works!')}
 });

然后,为了运行custom_success方法,您可以连接标准的pjax成功侦听器,并且鉴于提供给$.pjax的所有参数都在选项中可用,然后可以获取custom_success函数并运行它。所以您的听众可能看起来像例子
 $('#right_form').on('pjax:success', function(event, data, status, xhr, options) {
      // run "custom_success" method passed to PJAX if it exists
      if(typeof options.custom_success === 'function'){
           options.custom_success();
      }
 });

我*认为*哪种会为您提供类似的功能?

关于javascript - jQuery Pjax-Ajax成功功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21679655/

10-11 15:47