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 中,如果从缓存中检索到请求,则不会调用 send
和 complete
事件,因此您不会获取叠加层。而是根据您的特定用例使用 success
或 complete
。
关于javascript - 无法在 pjax 中为选项注册函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20357428/