0

我有类似的东西:

$(function(){
    init = {
        actions :{
            settings    : [settings_title(), settings_time(), settings_category(), settings_design(), settings_registration()],         
            timer       : [timer()]             
        }
    };

但我不希望所有这些功能在页面加载时立即运行,只是在单击时:

$('.save').click(function(){
    init.actions.settings[1];
});

或者我错过了什么

4

1 回答 1

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牺牲品。

于 2013-06-05T12:05:19.493 回答