将日期编号替换为jQuery Fullcalendar中事件的链接

时间:2010-02-05 11:04:53

标签: jquery events fullcalendar

我正在使用arshaw.com/fullcalendar/中的jQuery Fullcalendar,我想将日期编号替换为事件链接,我通过数据库中的JSON获取,例如在this image上:

我的小日历每天只有一个活动,因此我不需要默认显示。我需要更简单,更清洁的东西。

由于我对jQuery不太熟悉,所以我自己无法理解。

有没有办法取代它:

<div class="fc-day-number">5</div>

当天有关于活动的链接吗?

2 个答案:

答案 0 :(得分:1)

如果不修改日历创建脚本的源代码,您可以通过一些黑客攻击来实现所需的结果。假设您有一个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>');
    }
});

每次加载/打开日历时都要运行该代码段。如果不了解日历的更多信息,就无法确定这个代码片段的确切位置。

答案 1 :(得分:-1)

您只需要快速修改fullcalendar.js

即可
  • 在创建时添加链接
  • 在cellules上添加链接重绘东西..

只需更换此行:

(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\>");

享受它;)