禁用多天选择以在dayClick中触发功能

时间:2015-04-21 08:32:12

标签: jquery fullcalendar

我在我正在构建的网站中使用fullcalendar,当用户点击一天时,我需要弹出一个菜单(很像上下文菜单)。

我目前正在使用dayClick来触发上下文菜单,它显示菜单没有问题。当我想在上下文菜单中执行命令时出现问题。调用上下文菜单的功能应用于我之前选择的所有日期(即使它没有突出显示),而不仅仅是我想要或当前选择的特定日期。

案例:我点击了12-04-2015,出现了一个上下文菜单。什么也不做,点击另一个日期25-04-2015,出现上下文菜单,然后单击其中一个命令,它将为日期单元格分配一个将背景更改为特定颜色的类。背景改变了。但是,它不仅限于2015年4月25日(我点击的最后一天),也不限于2015年4月12日,即使它目前还没有高亮或选择。现在我已经改变了2天,即使我只应该换一个。

这是我在dayClick中调用的函数。

execContextMenuDay(date, elem);

date是当前选择的日期elem是当前所选日期的<td>

我通过像这样搜索表来获取元素:

var elem = $('.fc').find('.fc-day[data-date=' + date+ ']');

这是功能内容:

function execContextMenuDay(date, elem){
    elem.addClass('red');
}

将所选日期的背景更改为红色。

我已尝试将selectable选项设置为false,但它无效。

有谁知道我怎样才能实现我的目标?

1 个答案:

答案 0 :(得分:0)

在发布此内容后几小时找到答案...

  • 设置全局变量(即selectedDay)以存储当前在日历中单击的日期。
  • 每当我点击另一天时替换它
  • 然后,在执行上下文菜单操作之前,检查当前单击的日期是否与我在该全局变量中存储的日期相同
  • 如果相同,请执行操作。

我希望有一些方法可以做到这一点,而不必有一个全局变量,但我想现在这样做...它仍然没有&#39;禁用&#39;多项选择,但至少它只会执行当前点击日期的操作,而不是所有已点击的操作。