Javascript 事件在我的代码中未被激发?

Javascript 事件在我的代码中未被激发?,javascript,javascript-events,Javascript,Javascript Events,我正在尝试将一些事件侦听器添加到文档,但由于某些原因,单击事件似乎从未触发,因为从未调用回调: function NotJquery(element) { this.element = element; return this; } NotJquery.prototype.eventFired = function(event, callback) { console.log('in NotJquery prototype'); return function

我正在尝试将一些事件侦听器添加到
文档
,但由于某些原因,
单击
事件似乎从未触发,因为从未调用回调:

function NotJquery(element) {
    this.element = element;

    return this;
}

NotJquery.prototype.eventFired = function(event, callback) {
    console.log('in NotJquery prototype');
    return function (event, callback) {
        element.addEventListener(event, callback, true);
    };
};

var $ = function(element) {
    return new NotJquery(element);
};

function Test() {
}

Test.prototype.addListener = function() {
    console.log('in Test prototype');
    $(document).eventFired('click', function() {
        console.log('click event fired');
    });
};

(function() {
    var test= new Test();
    test.addListener();
}());
控制台中记录了消息:“in Test prototype”和“in NotJquery prototype”,但当我单击文档中的某个位置时,控制台中不会输出消息“click event fired”。我看不出我的代码有什么问题。有人有办法让它工作吗


元素
未在
eventFired
函数中定义(但这不是唯一的问题)。这里有一个最基本的更新:

NotJquery.prototype.eventFired = function(event, callback) {
    var self = this; // <== Change 1 of 2

    console.log('in NotJquery prototype');
    return function () {
        self.element.addEventListener(event, callback, true);
    //  ^-- Change 2 of 2
    };
};
NotJquery.prototype.eventFired=函数(事件,回调){

var self=this;//您的客户机代码期望如下所示:

NotJquery.prototype.eventFired = function(event, callback) {
    this.element.addEventListener(event, callback, false);
};

正在工作的演示:

eventFired
方法不接受任何参数,但您正在传递它。对不起,我的错误,但即使修复了,它仍然不会激发。这样,客户端代码需要是
$(文档)。eventFired('click',function(){console.log('click event fired');})();
,这没有任何意义;P@Esailija:代码相当混乱,我指出了几个问题,但确实需要重写。@user6669:抱歉,结果比预期的更为苛刻。我建议继续进行实验,并大量阅读技术和JavaScript的工作原理。很好祝你好运。