Как не открывать модальное диалоговое окно прошедшего события в jquery - PullRequest
0 голосов
/ 15 ноября 2018

У меня проблема с реализацией полного календаря jquery .При нажатии на прошедшее событие открывается модальное окно, но оно не должно.

Только для текущих и будущих событий должно открываться модальное диалоговое окно.

eventRender: function(event, element, view) {
    var eventEnd = moment(event.end);
    var NOW = moment();
    if (eventEnd.diff(NOW, 'seconds') <= 0) {
        return true;
    }
},

Пожалуйста, помогите мне и заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

event.end уже мгновение. документация упоминает об этом (прочитайте раздел "конец", где говорится, что это станет моментом во всем API). Вам не нужно оборачивать это в другой момент.

И если вы хотите сравнить его с другим моментом, isSameOrAfter () намного проще в использовании, чем diff ()

Теперь прямое изменение в вашем существующем коде будет выглядеть так:

eventRender: function(event, element, view) {
    if (event.end.isSameOrAfter(moment()) {
      //here you can place your code to attach a modal popup to the event
    }
},

В качестве альтернативы, если вам не нужно определять ваш модальный режим, возможно, было бы лучше использовать вместо него eventClick - поэтому, когда пользователь щелкает событие, вы в то время принимаете решение, следует ли показать модал или нет. Это может иметь больше смысла (в eventRender вам, возможно, все еще понадобится код для определения всплывающего окна).

0 голосов
/ 15 ноября 2018

Похоже, вы можете использовать обработчик eventClick для этого:

eventClick: function(calEvent, jsEvent, view) {
  alert('You clicked the Event: ' + calEvent.title);
}

Вот рабочая демонстрация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...