我在我的网站上使用yii2fullcalendar。
在移动设备上,尽管我们只想向下滚动屏幕。
如何将" DayClick"更改为一天的双击事件?
更新:实际上,我想避免在移动设备上使用不便。因此,最好如果我们可以设置一个"长按"参数,而不是找到将" DayClick"更改为Day双击事件的方式。
这是我的视图
<?= yii2fullcalendaryii2fullcalendar::widget(array(
'options' => [
],
'clientOptions' => [
'allDaySlot' => false,
'selectHelper' => true,
'eventClick' => new JsExpression($JSEventClick),
'dayClick' => new JsExpression($JSDayClick),
'eventMouseover' =>new JsExpression($JSDayMouseover),
'eventMouseout' =>new JsExpression($JSDayMouseout),
'defaultView' => 'agendaWeek',
'firstDay' => date('w'), // Sunday=0, Monday=1, Tuesday=2, etc.
'header' => [
'center'=>'prev,next today',
'left'=>'',
'right'=>'agendaDay,agendaWeek,month',
],
],
'ajaxEvents' => Url::to(......)
));
?>
谢谢。
您应该能够修改日用函数以使用以下算法处理双击:
- 将变量
clicked_once
设置为false。 - 单击:
- 如果!clicked_once
- 将
clicked_once
设置为true。 - 启动XX秒后发生的超时函数。
- 超时,将clicked_once设置为false。
- 将
- 如果clicked_once
- 执行事件
- 将
clicked_once
设置为false。
- 如果!clicked_once
很抱歉提供算法而不是代码,在我面前没有任何参考材料。
我有一个更好的解决方案。
设置为:
的参数longPressDelay
在客户端选项中,如下
<?= yii2fullcalendaryii2fullcalendar::widget(array(
'options' => [
],
'clientOptions' => [
'allDaySlot' => false,
'selectHelper' => true,
'eventClick' => new JsExpression($JSEventClick),
'dayClick' => new JsExpression($JSDayClick),
'eventMouseover' =>new JsExpression($JSDayMouseover),
'eventMouseout' =>new JsExpression($JSDayMouseout),
'defaultView' => 'agendaWeek',
'longPressDelay' => 1500, // -> Add here
'firstDay' => date('w'), // Sunday=0, Monday=1, Tuesday=2, etc.
'header' => [
'center'=>'prev,next today',
'left'=>'',
'right'=>'agendaDay,agendaWeek,month',
],
],
'ajaxEvents' => Url::to(......)
));
?>
参考:https://github.com/philippfrenzel/yii2fullcalendar/issues/72#issuecomment-268556312