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