2015-08-27 57 views
0

我想创建一个类,将扩展jQuery .trigger()和.on()的功能。
此代码不起作用。如何扩展JQuery事件与原型

var myclass = new $(); 
myclass.set = function (key, value){ 
    this[key] = value; 
    this.trigger('change', {key: key, value: value}); 
} 

myclass.on('change', function (e, param) { 
    console.log("Hello there"); 
}); 
myclass.set('student', 23); 

我也尝试过这样的

var MyClass = function() { 
    this.set = function() { 
    this[key] = value; 
    this.trigger('change', {key: key, value: value}); 
    } 
} 

MyClass.prototype = new $(); 
var myclass = new MyClass(); 

myclass.on('change', function (e, param) { 
    console.log("Hello there"); 
}); 
myclass.set('student', 23); 

但此代码的工作

var myclass ={ 
    set: function (key, value){ 
    this[key] = value; 
    $(this).trigger('change', {key: key, value: value}); 
    } 
} 

$(myclass).on('change', function (e, param) { 
    console.log("Hello there"); 
}); 
myclass.set('student', 23); 

在上面的代码我想一个“设定”功能附加到新对象到$()函数。

+0

U应先克隆$ .Event然后修改其原型 –

+0

@EricSo,我已经更新了这个问题。 –

回答

0

这样的事情是正确的?

var MySubClass = function(){}; 
MySubClass.prototype = new $.Event()