我有包含其值是一個jQuery功能的屬性的對象中的對象:jQuery函數作爲對象的屬性值
var fields = {
id: {},
timeStarted: {},
duration: {},
status: {},
name: {
field: $("#companyName"),
changeEvent: $("#companyName").on("click", function(){
alert("bazinga!");
})
}
};
我也有另一種功能,其穿過內fields
找到的所有值並嘗試註冊變更事件:
function registerChangeEvents(){
$.each(fields, function(field, v){
$.each(v, function(prop, vv){
// check which property the loop is on: if changeEvent
if (prop == "changeEvent"){
vv();
}
});
});
}
當我運行registerChangeEvents()
然而,控制檯返回Uncaught TypeError: object is not a function
。我可以使用function(){...}
將changeEvent
的值包裝起來,這將使它成爲可以正常運行的函數。不過,出於某種原因,這看起來並不是正確的做法。
如果您有任何想法,請告訴我。
謝謝。
它不是一個功能,它是結果調用這些jQuery函數(事實證明這是一個jQuery包裝器對象)。 (除非你想使用'$ .fn.click.bind($(「#companyName」),alert.bind(window,「bazinga!」))'' ) – Bergi 2013-04-25 16:32:42