如何取消fullCalendar中的旧选择?

时间:2011-01-13 12:06:52

标签: fullcalendar

我使用jQuery fullCalendar(http://arshaw.com/fullcalendar/docs/selection/unselectAuto/)

我使用此日历的可选版本(http://arshaw.com/js/fullcalendar/demos/selectable.html)

它工作正常,但是如果我继续选择新日期,我想取消/删除旧的选择。

让我们说我选择了1月1日并给了它一个头衔。 当我尝试选择1月2日时,我希望只看到2月1日的选择。 我认为unselectAuto就是为了这个,但我无法使它成功:(

有什么想法吗?

我在右下方使用了unselectAuto 可选:真的, unselectAuto:true,

5 个答案:

答案 0 :(得分:4)

你可以试试这种方式,这对我有用:)

 var liveDate = new Date(); // current Date
 var calendar = $('#calendar').fullCalendar({
         select: function (startDate, endDate) {
                    if (liveDate > startDate) {
                      alert('Selected date has been passed');
                      return false;
                  } else {
                           //do your wish
                  }
         calendar.fullCalendar('unselect');
    }
});

答案 1 :(得分:4)

首先,仍然需要使用$('#yourCalendar').fullCalendar('unselect');函数。

我需要做的第二件事是指定unselect回调的行为方式(设置fullcalendar选项时)。对我来说,我必须从我的表单中取消绑定提交按钮

unselect: function(){
    $('#submitButton').unbind();
},

效果很好!

我在阅读这篇文章"multiple events created"

后得出了这个结论

答案 2 :(得分:2)

出现同样的问题但是我的用户直接与日历接口并且正在生成多个事件。即。不是通过带有按钮的表单,因此没有像以前的许多解决方案一样“解除绑定”。

要仅允许一个选择并清除先前的提交,我更改了select函数,如下所示:

select: function(start, end) {
   var title = "Desired Booking";
   var eventData;
   eventData = {
       title: title,
       start: start,
       end: end
   };
 $('#calendar').fullCalendar('renderEvent', eventData, true);                                                },
select: function(start, end) {
   $('#calendar').fullCalendar('removeEvents');
   $('#calendar').fullCalendar('rerenderEvents')
   var title = "Desired Booking";
   var eventData;
   eventData = {
       title: title,
       start: start,
       end: end
   };
 $('#calendar').fullCalendar('renderEvent', eventData, true);                                                },

这对我有用。

答案 3 :(得分:1)

我也有unselectAuto的问题。有时它会在我不想要的时候取消选择,有时在我想要它时它不会取消选择。我的解决方案是手动触发取消选择方法。

以下是取消选择当前所有选定内容的方法:

$('#yourCalendar').fullCalendar('unselect');

您可以将此行代码放在您在插件外部绑定的自定义jQuery事件中。您也可以将它包含在fullCalendar回调等中......

希望这有帮助。

斯科特

答案 4 :(得分:-2)

使用此代码

 $('#trainings_modal').on('hidden', function () {
        $('#trainings_modal *').unbind(); // Unbind all events
 });

使用任何方法(即按es键或按键)取消绑定隐藏表格