Javascript 听触发器

Javascript 听触发器,javascript,jquery,Javascript,Jquery,我正在使用一个库,完成后将通过$(document.trigger('playlaydone')触发事件。我正在收听此触发器,但没有收到我期望的警报() $(document).bind('playlistDone', function() { alert('done'); }); 我做错了什么?首先,从jQuery 1.7开始,附加事件的首选方法是on,而不是bind(请参阅) 其次,您的基本语法看起来还可以,但重要的是要理解您处理的是自定义事件,而不是浏览器事件。这意味着您的库必须

我正在使用一个库,完成后将通过
$(document.trigger('playlaydone')触发事件。我正在收听此触发器,但没有收到我期望的
警报()

$(document).bind('playlistDone', function() {
   alert('done');
}); 

我做错了什么?

首先,从jQuery 1.7开始,附加事件的首选方法是
on
,而不是
bind
(请参阅)

其次,您的基本语法看起来还可以,但重要的是要理解您处理的是自定义事件,而不是浏览器事件。这意味着您的库必须使用jQuery来触发其事件,否则jQuery在事件发生时将无法检测到它

使用。从jQuery文档:

.on()方法将事件处理程序附加到当前选定的集合 jQuery对象中元素的数目。从jQuery1.7开始,.on()方法 提供附加事件处理程序所需的所有功能

试试这样:

$(document).on('playlistDone', function( a ) {
   alert( a );
}); 


我们需要更多的信息。什么图书馆?您确定它正在触发
playlaydone
?对于您发布的代码,唯一可能发生这种情况的方法是,另一个事件侦听器位于
文档上,该文档在您的之前处理,并且正在调用
event.stopImmediatePropagation()
@shmiddy抱歉,这是另一位同事编写的自定义库,用于从Youtube播放列表中检索所有视频ID。我确信它正在触发播放完成。您如何绑定它?它是如何触发的?在被触发的位置添加一个断点,以确保它被调用。我将修改我的代码以使用()上的
。我如何检查我的库是否使用jQUery触发事件?一个简单的方法是进入jQUery代码,找到“trigger”函数并添加console.log('hey!')或调试器行,然后加载内容并查看库是否触发该行。嗯。。。console.log()没有显示任何内容。我要说的是图书馆出了点问题,听起来不错。您可能需要仔细检查他们的文档,看看它是否提到了告诉库jQuery在哪里的内容;如果他们希望你说“这是我的jQuery变量”,而你不是,那么他们会退回到自己的、单独的jQuery,你可能会遇到问题。。。再说一次,它可能只是一个坏库。需要澄清的是,与
trigger()
关联的代码在库中。
var data = 'Done';
$(document).trigger('playlistDone', data );