我试图用jquery来引发自定义事件,但由于某种原因,我似乎无法启动和/或捕获它们。为什么我不能自定义事件?
我使用jstree插件创建文件夹的文件系统:
$('.filetree.global, .filetree.workspace').bind('select_node.jstree', function (event, data) {
alert('test ');
$(document).trigger('filePick').trigger('folderPick');
}).jstree({
/*stuff*/
});
再往下的代码,我结合filePick和folderPick事件元素与特定的类,并告诉他们,提醒一个测试消息,只要他们赶上事件:
$('.folder-action').bind('folderPick', function(e, data) {
alert('test 2');
});
不幸的是,警报永远不会被触发,我不知道为什么。 jquery文档对我来说似乎很清楚,我遵循另一个教程,这似乎也表明我的代码应该可以工作,但它不是!哎呀!
“测试1”得到警报,但不是“测试2”。另外,我安装了Eventbug(Firebug扩展),我可以看到我对filePick的绑定已注册,这使我相信filePick和folderPick永远不会被解雇。
+1为''.event.trigger()'我不知道这是可能的,性感 – meo
@meo我不认为它正式记录在jQuery文档中。如果有的话,我还没有找到它(或者我会在我的答案中链接到它)如果你做一些谷歌搜索自定义全球jQuery事件,你会发现很多文章解释它的用法,但是。 http://www.google.com/search?q=custom%20global%20jquery%20event –
谢谢,这正是我一直在寻找的。我正在考虑使用$ .event.trigger,因为我的图标具有要刷新的状态,具体取决于所选的文件夹。非常感谢你! :) – Gazillion