addEventListener不能在事件名称中使用冒号(:)

时间:2014-09-18 19:05:41

标签: javascript jquery events pjax

我目前正在尝试使用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

1 个答案:

答案 0 :(得分:0)

似乎this question已经回答了我的问题。使用Vanilla JS是不可能的。