我编写了以下代码来实现简单的pub / sub API。
(function ($) {
var o = $({});
$.each({
trigger: 'trigger',
on: 'listen',
off: 'stopListen'
}, function (key, val) {
jQuery[val] = function () {
//console.log(o[key]);
o[key].apply(o, arguments);
}
});
})(jQuery);
$.trigger('watch');
$.listen('watch', function (e, data) {
alert('Watch it');
});
但是,上述代码不会提醒Watch it
。 为什么它不起作用,我该如何解决?
答案 0 :(得分:2)
在触发事件之前,您必须先听取事件。尝试按此顺序执行:
$.listen('watch', function (e, data) {
alert('Watch it');
});
$.trigger('watch');