0

我正在使用来自 arshaw.com/fullcalendar/ 的 jQuery Fullcalendar,我想用事件链接替换天数,我通过数据库中的 JSON 获取事件链接,如下图所示

我有一个小日历,每天只有一个事件,所以我不需要默认显示。我需要一些更简单、更干净的东西。

由于我对 jQuery 不是很熟悉,所以我自己也搞不清楚。

有没有办法代替这个:

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

有当天活动的链接吗?

4

2 回答 2

1

在不修改日历创建脚本的源代码的情况下,您可以通过一些 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>');
    }
});

每次加载/打开日历时只需运行该片段即可。如果不了解有关日历的更多信息,就不可能说出此代码段的确切位置。

于 2010-02-05T11:11:31.207 回答
-1

您只需要快速修改您的 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\>");

好好享受 ;)

福。

于 2010-03-03T00:49:55.397 回答