我有类似的东西:
$(function(){
init = {
actions :{
settings : [settings_title(), settings_time(), settings_category(), settings_design(), settings_registration()],
timer : [timer()]
}
};
但我不希望所有这些函数在页面加载时立即运行,就像点击时一样:
$('.save').click(function(){
init.actions.settings[1];
});
或者我错过了什么
答案 0 :(得分:7)
我想你可能正在寻找这个:
$(function(){
init = {
actions :{
settings : [settings_title, settings_time, settings_category, settings_design, settings_registration],
timer : [timer]
}
};
// ...
函数名后面没有()
,所以我们只是引用函数对象(在数组中引用它),而不是调用它并返回它的返回值在阵列中。
然后:
$('.save').click(function(){
init.actions.settings[1]();
// Note ----------------^^
});
...它调用我们存储在索引1的数组中的函数。
旁注:除非你在某个地方展示过你未展示过的init
声明,否则你将成为The Horror of Implicit Globals的牺牲品。