javascript - 无法在 pjax 中为选项注册函数

标签 javascript jquery jquery-events pjax

Pjax不允许我在直接调用时将函数指定为选项。

$(document).on('click', 'a.inferno-preview', function(event) {
  return $.pjax.click(event, {
    container: '#preview-overlay',
    fragment: '#preview-overlay',
    send: function() {
      return $('#preview-overlay').removeClass('hidden');
    },
    complete: function() {}
  });
});

在这种情况下,'send' 和 'complete' 函数没有被执行,而 'container' 和 'fragment' 运行良好。这是为什么?我需要做什么才能让 Pjax 识别我的函数?

顺便说一句:我不能使用 conventional form of using Pjax ,我需要对发生的事情有更多的控制,所以我需要使用 $.pjax.click 对象。然而,它可以像下面这样以常见的方式与函数一起正常工作:

$(document).pjax('a.inferno-preview', '#preview-overlay', {
    send: function() { alert('this will work.'); }
});

最佳答案

在 pjax 中,如果从缓存中检索到请求,则不会调用 sendcomplete 事件,因此您不会获取叠加层。而是根据您的特定用例使用 successcomplete

关于javascript - 无法在 pjax 中为选项注册函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20357428/

相关文章:

javascript - 单击复选框后,新任务不会删除。

javascript - 玩家只能从 scores.list API 获取自己的分数

Javascript:动态计算输入值

javascript - 如何从外部函数访问 'cy.load()' 等?

javascript - 使用 on() jQuery 方法将 'this' 作为参数传递给事件处理程序

javascript - js obj -> json 文件(ajax、php)

javascript - 在 HTML Canvas 中创建图像淡入淡出

javascript - JQuery 将范围值附加到 textarea 一次

javascript - 随机、不重叠的最大宽度 div,在行上大小均匀

javascript - 触发 ('change' ) 功能在弹出窗口中不起作用