生成“事件”函数数组

时间:2015-10-02 08:00:48

标签: javascript jquery arrays jquery-plugins

我写了我的第一个jquery插件(日历)。现在它工作得很好,但我已经在我的插件中嵌入了事件,如:

var days = [
    new Event('9-5', 'test1', 1),
    new Event('9-7', 'test2', 8),
    new Event('9-8', 'test3', 2)       
];

现在我从外面向我的插件提交事件“days”:

var days = [
    ['9-5','test1', 1],
    ['9-7', 'test2', 8],
    ['9-8', 'test3', 2]      
];
$("#cal").calendar( { year: "2015", month: "9", events: days } ); 

并在

插件中
var config = {
// default settings
    year: "2015",
    month: "9",
    events: ""
// ...
};
// change default settings
if (settings) { config = $.extend( {}, config, settings ); }

现在我的问题是我尝试动态生成相同的事件数组:

var days = [];
config.events.each(function( index ) {
    days.push(new Event(config.events[index][0],config.events[index][1],config.events[index][2]));
});

但是我收到以下错误:

TypeError: config.events.each is not a function

这是我的活动功能:

function Event(start,title, duration){ 

    if(start instanceof Date){
        this.start = start;   
    }
    this.title = title;
    this.dur = duration;
    this.end= new Date(this.start);
    ....
}

如何做到这一点? 非常感谢

修改

我使用的每项功能都不对:

 config.events.each(function( index ) {

必须是:

 $.each(config.events, function( index ) {

1 个答案:

答案 0 :(得分:0)

您没有正确使用.each。 $ .each()有两个参数。第一个是数组/对象,第二个是回调函数。 http://api.jquery.com/jquery.each/