我在整个项目中都在使用FancyBox,并希望将FancyBox实现到FullCalendar脚本中。基本上,我想弄清楚如何将事件的描述传递给弹出的FancyBox。我正在使用11种不同的谷歌日历订阅源。我担心这可能会阻止这种情况的发生。如果是这样的话,我可能会完全放弃这个想法。
我看到了其他类似于我的问题,比如使用gcal.js文件的events.push部分,但我似乎不知道如何让其他人的解决方案发挥作用。我看过的其他一些问题是:
- eventClick with lightBox
- jQuery fullCalendar+Fancybox弹出窗口编辑事件
- fullcalendarjQuery-可以从谷歌日历事件中检索描述吗
- 使用Fullcalendar在Tooltip中显示Google日历事件描述字段
有没有办法将gcal.js文件的events.push部分传递到弹出的FancyBox?或者有其他方法可以将事件描述传递给FancyBox吗?我是否应该考虑将我的谷歌日历订阅源转换为JSON字符串,而使用PHP/MMySQL来创建和存储事件?我是不是忽略了一些显而易见的东西?
这是我用来在eventClick上启动FancyBox的当前脚本。
eventClick: function(event) {
if (event.url) {
$.fancybox({
'type': 'iframe',
'href': 'event.url'
})
return false;
}
}
在目前的形式中,显然没有提到events.push或任何类似的内容。它对推出FancyBox非常有效,但对其他功能没有多大作用。像现在这样使用event.url,我会收到一个缺页错误,但我相信这可能是因为我正在本地测试,而不是在实时服务器上。然而,我可能错了。
如果有任何帮助,我将不胜感激。非常感谢。
所以,在前一天晚上发布了我的问题后,我很自然地找到了解决方案。对于其他有这个问题的人,以下是我所做的:
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中?
我遇到了同样的问题,使用完整日历文档中的eventClick示例,我做了以下操作:
eventClick: function(event) {
if (event.url) {
$("a").fancybox(event.url);
return false;
}
}
不确定这是否有帮助,但它对我有效。我对这个解决方案唯一的问题是,在第一次点击时,没有调用fancybox。在第二次单击和随后的任何单击中,它都可以正常工作。