Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 发布/订阅API不起作用_Javascript_Jquery - Fatal编程技术网

Javascript 发布/订阅API不起作用

Javascript 发布/订阅API不起作用,javascript,jquery,Javascript,Jquery,我编写了以下代码来实现简单的发布/订阅API (function ($) { var o = $({}); $.each({ trigger: 'trigger', on: 'listen', off: 'stopListen' }, function (key, val) { jQuery[val] = function () { //console.log(o[key]);

我编写了以下代码来实现简单的发布/订阅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');
});

但是,上述代码不会发出警报
观察它
为什么它不工作以及如何修复它?

在触发事件之前,您必须先聆听事件。尝试按以下顺序执行:

$.listen('watch', function (e, data) {
    alert('Watch it');
});

$.trigger('watch');