Нажмите на событие FullCalendar через FancyBox (v2). - PullRequest
0 голосов
/ 22 января 2012

Я использую FancyBox на протяжении всего проекта, над которым я работаю, и хотел бы внедрить FancyBox в скрипт FullCalendar. По сути, я хочу выяснить, как передать описание события всплывающему окну FancyBox. Я использую 11 различных каналов Календаря Google. Я боюсь, что это может помешать этому. Если это так, я, скорее всего, полностью откажусь от этой идеи.

Я видел другие вопросы, похожие на мои, такие как использование раздела events.push файла gcal.js, но я не могу понять, как заставить работать решения других. Некоторые другие вопросы, на которые я смотрел:

Есть ли способ передать раздел events.push файла gcal.js во всплывающее окно FancyBox? Или есть какой-то другой способ передать описание события в FancyBox? Должен ли я рассмотреть преобразование моих каналов Календаря Google в строки JSON и использовать вместо этого PHP / MySQL для создания и хранения событий? Я пропускаю что-то явно очевидное?

Вот текущий скрипт, который я использую для запуска FancyBox на eventClick.

  eventClick: function(event) {
    if (event.url) {
        $.fancybox({
            'type': 'iframe',
            'href': 'event.url'
        })
        return false;
    }
  }

В его нынешнем виде явно не упоминается events.push или что-либо подобное. Он отлично работает для запуска FancyBox, но не намного. Используя event.url, как и сейчас, я получаю сообщение об ошибке на отсутствующей странице, но я полагаю, что это может быть связано с тем, что я тестирую это локально, а не на живом сервере. Однако я могу ошибаться.

Буду признателен за любую помощь. Спасибо.

Ответы [ 2 ]

4 голосов
/ 23 января 2012

Итак, естественно, после публикации моего вопроса накануне вечером, я просто нашел решение.Для всех, у кого есть эта проблема, вот что я сделал:

eventClick: function(event) {
    if (event.url) {


        var fancyContent = ('<div class="header">Event Details</div> <div id="prac" class="pracform"> <label><b>Event: </b></label>' + event.title + '<br>' + '<label><b>Date: </b></label>' + event.date + '<br>' + '<label><b>Start Time: </b></label>' + event.start + '<br>' + '<label><b>End Time: </b></label>' + event.end + '<br>' + '<label><b>Description: </b></label>' + '<div class="event_desc">' + event.description + '</div>' + '<br>' + '<label><b>Location: </b></label><a href=' + event.url + '>' + event.location + '</a>' + '<br>' + '</div>');

        $.fancybox({
            'content': fancyContent
        })
        return false;
    }
}

Однако у меня возникают трудности с редактированием файла gcal.js, чтобы изменить время, установленное с ISO8601 на h: mmTT, иМне интересно, возможно ли иметь отдельную категорию даты, как я использовал выше (в ее текущей форме она возвращается как «неопределенная»).Может быть, в будущем выпуске FullCalendar?

0 голосов
/ 26 января 2012

Я столкнулся с той же проблемой, и, используя пример eventClick из документации fullcalendar, я сделал следующее:

eventClick: function(event) {
    if (event.url) {
    $("a").fancybox(event.url);
        return false;
    }
}

Не уверен, поможет ли это, но у меня это сработало.Единственная проблема, с которой я столкнулся при использовании этого решения, заключается в том, что при первом нажатии fancybox не вызывается.При втором щелчке и последующих щелчках он работает нормально.

...