我正在使用来自 arshaw.com/fullcalendar/ 的 jQuery Fullcalendar,我想用事件链接替换天数,我通过数据库中的 JSON 获取事件链接,如下图所示:
我有一个小日历,每天只有一个事件,所以我不需要默认显示。我需要一些更简单、更干净的东西。
由于我对 jQuery 不是很熟悉,所以我自己也搞不清楚。
有没有办法代替这个:
<div class="fc-day-number">5</div>
有当天活动的链接吗?
我正在使用来自 arshaw.com/fullcalendar/ 的 jQuery Fullcalendar,我想用事件链接替换天数,我通过数据库中的 JSON 获取事件链接,如下图所示:
我有一个小日历,每天只有一个事件,所以我不需要默认显示。我需要一些更简单、更干净的东西。
由于我对 jQuery 不是很熟悉,所以我自己也搞不清楚。
有没有办法代替这个:
<div class="fc-day-number">5</div>
有当天活动的链接吗?
在不修改日历创建脚本的源代码的情况下,您可以通过一些 hack 来实现所需的结果。假设您有一个 JavaScript 对象,其中包含您的事件 URL,如下所示:
var urls = {
4: "http://mydomain.com/event.html",
16: "http://mydomain.com/event2.html",
22: "http://mydomain.com/event.html"
}
这可能是 JSON 请求的结果。然后,您可以遍历日历中的所有日期并检查当天是否有链接,然后更新日期编号以包含该链接:
$('.fc-day-number').each(function() {
// Get current day
var day = parseInt($(this).html());
// Check if there's a url defined for the day
if(urls[day] != undefined) {
// Replace the day number with the link
$(this).html('<a href="' + urls[day] + '">' + day + '</a>');
}
});
每次加载/打开日历时只需运行该片段即可。如果不了解有关日历的更多信息,就不可能说出此代码段的确切位置。
您只需要快速修改您的 fullcalendar.js
只需替换此行:
(showNumbers ? "<div class='fc-day-number'>" + d.getDate() + "</div>" : '') +
用这条线:
(showNumbers ? "<div class='fc-day-number'><a href=\"myURL.com\">" + d.getDate() + "</a></div>" : '') +
然后,这一行:
td.find('div.fc-day-number').text(d.getDate());
用这条线:
td.find('div.fc-day-number').html("<a href=\"myURL.com\">"+d.getDate()+"<a\>");
好好享受 ;)
福。