FullCalendar,可以设置可选的false,但允许选择插槽
FullCalendar, possible to set selectable false but allow select slot
我正在用FullCalendar制作一个应用程序。
我注意到,当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个时隙,将结束时间设置为开始时间后1小时(3600秒),而不是5小时,但我对这个解决方案不满意,因为我觉得它不干净,而且我不喜欢selectable
功能仍然可用。
时隙的不完美解决方案:
这对你来说足够好吗?
http://jsfiddle.net/3E8nk/739/
select: (function() {
var humanSelection = true;
return function(start, end, jsEvent, view) {
if(humanSelection) {
humanSelection = false;
$('#calendar').fullCalendar('select', start);
humanSelection = true;
}
};
})(),
连续几天的解决方案:
尝试使用day click将背景颜色设置为您想要的颜色。
参见小提琴
dayClick: (function() {
var lastThis;
return function(date, jsEvent, view) {
if(lastThis)
lastThis.css('background-color', 'white');
lastThis = $(this);
$(this).css('background-color', 'lightblue');
}
})(),
相关文章:
- 下拉选择可自动更改第二个下拉选择
- 如何使用jQuery选择下拉列表的值
- 如何创建带有插槽的vue js组件预加载程序
- 如何访问<插槽>内部v-for(vue.js)
- Flexbox导致adsense错误:;adsbygoogle.push()错误:没有可用宽度为0的插槽大小;
- 如何调用日期函数并在接下来的 6 天插槽中显示
- 插槽:访问作用域变量
- 余烬添加有许多子模型可以从下拉列表中选择
- CSS 切片/插槽过渡效果,用于/与 DIV 一起使用
- FullCalendar,可以设置可选的false,但允许选择插槽
- 我可以使用vuejs循环中的插槽吗
- 带有道具的内联模板中的Vuejs组件插槽
- CCID插槽状态字节
- 改变时间滑块到30分钟插槽而不是1小时
- 我如何得到模态窗口弹出时,我选择一个时间槽fullCalendar
- 当点击插槽时,剑道UI调度程序在IE中自动滚动
- jQuery:输入选择中的字符串插值
- 如何检查特定插槽是否已加载或未使用Google Doubleclick API
- 烧瓶插槽io 400(坏请求)
- Fullcalendar.js插槽突出显示