我一直在尝试让 FullCalendar 事件在单击时使用 Facebox 弹出信息。我可以将事件放在日历上或获取需要显示的信息,这只是让弹出框工作。
我尝试将 rel="facebox" 添加到包含事件标题的“span”和“a”中,但似乎都没有影响它。
如果有人以前尝试过或知道可能的解决方案,我期待收到您的来信。
我一直在尝试让 FullCalendar 事件在单击时使用 Facebox 弹出信息。我可以将事件放在日历上或获取需要显示的信息,这只是让弹出框工作。
我尝试将 rel="facebox" 添加到包含事件标题的“span”和“a”中,但似乎都没有影响它。
如果有人以前尝试过或知道可能的解决方案,我期待收到您的来信。
这可能与facebox的工作方式有关。我认为它可能仅在页面的初始加载时运行 - 因此,当您将这些添加到新元素时,facebox 代码已经运行并且新元素无法识别。
如果您使用它来启动 facebox:
jQuery(document).ready(function($) {
$('a[rel*=facebox]').facebox()
})
那么就是这样。您应该向 eventRender 方法添加一些内容,以便在呈现事件时调用 facebox 方法,该方法将它们实例化为 facebox 元素。
来自http://arshaw.com/fullcalendar/docs/event_rendering/eventRender/:
eventRender: function(event, element) {
element.qtip({
content: event.description
});
}
但是您可以使用带有正确参数的“element.facebox”而不是“element.qTip”。您可能还需要设置一个 href。
我从 fullCalendar eventClick文档页面复制并扩展了示例:
$('#calendar').fullCalendar({
eventClick: function( calEvent, jsEvent, view ) {
var txt = 'Event: ' + calEvent.title + '<br>' +
'Event Start: ' + calEvent.start + '<br>' +
'Event End: ' + calEvent.end + '<br>' +
'Coordinates: ' + jsEvent.pageX + ',' + jsEvent.pageY + '<br>' +
'View: ' + view.name;
// for an image use: jQuery.facebox({ image: 'dude.jpg' })
// for ajax page use: jQuery.facebox({ ajax: 'remote.html' })
jQuery.facebox(txt);
}
});
哦,如果您想获取任何其他calEvent
对象,请查看 fullCalendar事件对象页面。如果您使用的是谷歌日历扩展程序,可能还有更多,包括description
和location