0

我正在开发 javascript 项目。在这我必须使用 JavaScript 和 jQuery 没有 JavaScript / jQuery 库,如 Backbone。因此,我正在关注原型 javascript。在这种情况下,我必须倾听用户事件并采取相应的行动。我目前正在处理这些事件,如下所示

var Module = function (el) {
    var self = this;
    // I am handling click events in constructor here
    $('.' + el).on('click', function (e) { e.preventDefault(); self.foo() })
};

Module.prototype = function () {
    var foo = function () {
         console.log();
    };

    return {
        foo: foo
    }
}();

它工作正常。第二种方法是在里面监听这些事件$(function () { });。但是,这种方式在某些时候会变得混乱。我的问题是如何创建自己的事件对象,以便它监听这些事件并调用适当的函数或模块?

4

1 回答 1

0

可能这就是您要寻找的东西:

function Module(element, type, useCapture){

    // you can register more than one handler for a certain event of an element
    element.addEventListener(type, this.eventHandlers[type], useCapture);
    // or register only one handler for a certain event of an element
    element['on'+type] = this.eventHandlers[type];

}

Module.prototype.eventHandlers = {
    'click' : function(e){ console.log('click event: ',e); },
    'mousemove' : function(e){ console.log('mousemove event: ',e); },
    'keyup' : function(e){ console.log('keyup event: ',e); }
};

var eObj = new Module(document.querySelector('#canvas'), 'mousemove', false);

希望这对您有所帮助。

于 2013-08-17T11:10:54.680 回答