3
我正在申请FullCalendar。FullCalendar,可以设置可选false,但允许选择插槽
我注意到,selectable
设置为true
,用户能够选择不需要的多个星期或时间段。另一方面,当我将selectable
设置为false
时,我不能再使用用户选择时隙时要触发的选择操作。有没有什么方法selectable
功能将保持为false
,但仍然可以单独选择每个时隙,而不是时隙组的一部分。
这里是我的代码,如阵列穿过PHP:
'options'=>array(
'header'=>array(
'left'=>'prev,next,today',
'center'=>'title',
'right'=> 'month,agendaWeek,agendaDay',
),
'minTime' => '09:00:00',
'maxTime' => '20:00:00',
'slotDuration' => '01:00:00',
'slotEventOverlap' => false,
'defaultTimedEventDuration' => '01:00:00',
'allDaySlot' => false,
'allDay' => false,
'lazyFetching'=>true,
'weekends' => false,
'selectable' => true,
'height' => 'auto',
'contentHeight' => '150',
// 'selectHelper' => true,
// 'events'=>array(), // pass array of events directly
'select' => new CJavaScriptExpression("function(start, end, jsEvent, view) {
var currdisplay = view.name;
var check = Date.parse(start)/1000;
var today = Date.parse(new Date())/1000;
if (currdisplay != 'month' && check >= today) {
var start1 = Date.parse(start)/1000;
var end = Date.parse(start)/1000 + 3600;
window.location.href = \"www.somelink.com/?from=\" + start1 + \"&to=\" + end;
}}"),
'dayClick' => new CJavaScriptExpression("function(date, jsEvent, view) {
var currdisplay = view.name;
if (currdisplay == 'month') {
$('.calendar').fullCalendar('gotoDate', date);
$('.calendar').fullCalendar('changeView', 'agendaWeek');
}}"),
我目前的修复,或许你可以在代码块见:
var start1 = Date.parse(start)/1000;
var end = Date.parse(start)/1000 + 3600;
这两行确认如果用户选择5个时间段,在开始时间后5小时后设置结束时间为1小时(3600秒),但不是5个小时后,但我不满意这个解决方案,因为我没有发现它干净,不喜欢那selectable
功能仍然可用。
喜理查德,实际上之后什么IM是某种slotClick而不是一天的点击,我想我的代码上选择一个独特的时间段,而不是一组时隙 – nikolas 2014-10-27 22:27:36
来trigered @尼古拉斯这不能像图书馆那样适当地完成,但不应该很难延长。我在上面提供了一个不完美的解决方案,但是如果您决定在源代码上工作,那么我认为arshaw会欣赏拉请求:) – 2014-10-28 00:53:07
好吧,它似乎也有诀窍..可能从fullcalendar没有本地选项,但这似乎工作确定:) – nikolas 2014-10-28 12:35:54