FullCalendar dayClick函数与select函数冲突

时间:2010-08-03 07:43:01

标签: jquery jquery-plugins fullcalendar

我注意到当我尝试实现dayClick时:和select函数似乎在某处发生了碰撞。

这是一些缩小的代码。

// WHEN YOU SELECT MULTIPLE DAYS
            select: function(start, end, allDay) {
                var title = prompt('New Select Date:');
                if(title) {
                    calendar.fullCalendar('renderEvent',
                        {
                            title: title,
                            start: start,
                            end: end,
                            allDay: allDay
                        }, true);
                calendar.fullCalendar('unselect');
                alert("end of select");
                }
            },

            // ADDING A NEW EVENT
            dayClick: function (date) {
                alert("Day ("+ date +") was clicked");
            },

所以当我在某一天“点击”时出现问题,它会提醒我哪个很好,但随后它会显示SELECT功能的提示。

因此它运行ALERT然后运行PROMPT窗口。我不确定为什么会这样做,我无法缩小推理范围,也许其他人也遇到了类似的问题?

如果您遇到修复或同样的问题,请告诉我。 干杯。

2 个答案:

答案 0 :(得分:5)

我发现您不需要使用SELECT + DAYCLICK来创建新事件。 即使是1天或更长时间,选择也可以。因此,当我点击一天时,它会同时提示。呸,小问题,但至少我明白了。

我没有在文档中看到它,如果它在那里。 希望它可以帮助别人。

干杯。

答案 1 :(得分:2)

正如Justin所说,你只需要选择而不是dayClick,因为两者似乎都被触发了。但是,在我看来,例如智能手机需要dayClick,因为如果您只点击一个日期,智能手机就不会触发选择。我没有测试这个,所以它可以是我的代码,但它现在发生在我两次,我不知道如何解决它。

我想我想出了一个可能的解决方案,它如下:

dayClick: function(date, jsEvent, view) {
    if(jsEvent.originalEvent.type=="touchend") {
        $('#calendar').fullCalendar('select', date);
    }
},
select: function(start, end, jsEvent, view) {
    clickOrSelect(start, end, jsEvent, view);
}
function clickOrSelect(start, end, jsEvent, view) {
    //put code for both events here
}