У меня есть объект в пределах объекта, который содержит свойство, значение которого является функцией 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
. Я могу обернуть значение changeEvent
с function(){...}
, и это сделает его функцией, которая будет работать нормально. По какой-то причине это не похоже на правильный подход.
Пожалуйста, дайте мне знать, если у вас есть идеи.
Спасибо.
Это не функция, это результат вызова этих функций jQuery (который оказывается объектом оболочки jQuery). Обертка вызова в анонимной функции * - это путь (если вы не хотите использовать '$ .fn.click.bind ($ (" # companyName "), alert.bind (окно," bazinga! "))') – Bergi