2015-08-27 55 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()