我目前正在尝试使用pjax:complete
事件处理程序。下面我概述了这种情况:
我正在使用GitHub的Chrome扩展程序,它不包含jQuery,我不想包含它。我确实想听pjax事件,并在事件发生时做点什么。但是,下面的示例似乎只在使用jQuery的$.on
函数时起作用。我也为此创建了一个简单的JSFiddle,没有使用真正的pjax事件,而是模拟它。 You can find that here.如果你运行它,你会看到jQuery事件处理程序调用2次,但VanillaJS只调用一次。
$(document).on('pjax:complete', function () {
console.log('jQuery pjax event is called');
});
document.addEventListener('pjax:complete', function () {
console.log('VanillaJS pjax event is called');
});
document.dispatchEvent((new Event('pjax:complete'))); // This works
$(document).trigger('pjax:complete'); // this doesn't (FYI: actual function used can be found [here][1])
期望的结果是,即使从jQuery调用VanillaJS事件,也会调用它。
1:https://github.com/defunkt/jquery-pjax/blob/master/jquery.pjax.js#L181