0

JavaScript 新手。我有一个非 DOM 函数,我想向构造函数添加事件。

var class=function(){
/*
some code
*/

}
class.prototype.add=function(){

/*
adding item*/

}

现在我想向 custructer 添加事件

var klass=new class;

class.onadd(function(){
/*execute on adding item*/
});

我会多次附加不同的功能。

如何添加事件和调用函数?

4

2 回答 2

0

它分为两部分,on收集处理程序和事件触发器,在你的情况下是add

根据on分配的事件收集处理程序:

function yourConstructor(){
  this.events = {};
}

yourConstructor.prototype.on = function(eventName,handler){
  //create a property in `this.events` called `eventName` and put an array
  //in that array, store all handlers for that `eventName`
}

然后你的函数,在这种情况下add,执行它们的特定处理程序:

yourConstructor.prototype.add = function(){
  //do what add does
  //then execute all handlers in this.events.add array
}
于 2013-04-13T06:20:31.730 回答
0

你可以实现自己的事件系统,但我不推荐它。已经有很多好的图书馆。这里有几个:

我创建了一个jsFiddle来展示如何使用微事件。

function Person(name) {
    this.name = name;
}

Person.prototype.sayName = function () {
    alert('My name is ' + this.name);
    this.trigger('nameSaid');  //trigger the nameSaid event
};

//Make Person instances observable by applying the MicroEvent mixin
MicroEvent.mixin(Person);

//Create a new Person instance
var o = new Person('John Doe');

//Listen to the nameSaid event
o.bind('nameSaid', function () {
    alert(this.name + ' just said it\'s name!');
});

o.sayName();
于 2013-04-13T06:29:15.957 回答