2016-12-21 1 views
1

Я использую для моего сайта.Как справиться с длинным событием печати с yii2fullcalendar

На мобильном устройстве происходит событие «dayClick», хотя мы просто хотим прокрутить экран вниз.

Как изменить «dayClick» на событие двойного щелчка дня?

ОБНОВЛЕНИЕ: На самом деле, я хочу избежать неудобного использования на мобильном устройстве. Итак, лучше, если мы можем установить параметр «длительной печати» вместо того, чтобы найти способ изменить «dayClick» на день двойного щелчка.

Это мой view.php

<?= \yii2fullcalendar\yii2fullcalendar::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(......) 
    )); 
    ?> 

Спасибо.

ответ

1

У меня есть лучшее решение для моей проблемы.

То есть установить параметр:

longPressDelay 

в параметрах клиента, как показано ниже

<?= \yii2fullcalendar\yii2fullcalendar::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

+0

Хотя я согласен, что это лучшее решение, вы могли бы изменить ваш вопрос надлежащим образом? То, что вы рекомендуете, - это не то, как обращаться с двойным нажатием, но как обращаться с длинным нажатием. Таким образом, будущие зрители могут быть направлены на то, что им нужно. –

+1

Да, я модифицировано вопрос. – Sam

1

Вы должны быть в состоянии изменить вашу функцию dayClick обрабатывать двойной щелчок по следующему алгоритму:

  • Установить переменную clicked_once в ложь.
  • По щелчку:
    • Если clicked_once
      • Набор clicked_once истина!.
      • Запустить функцию тайм-аута, которая должна появиться после xx секунд.
        • По истечении времени установите clicked_once равным false.
    • Если clicked_once
      • Выполните событие
      • установить clicked_once ложь.

К сожалению предоставить алгоритм, а не код, не имеют каких-либо справочные материалы передо мной на них момент.

Смежные вопросы