开发者

Replace day number with link to event in jQuery Fullcalendar

开发者 https://www.devze.com 2022-12-19 01:10 出处:网络
I\'m using jQuery Fullcalendar from arshaw.com/fullcalendar/ and I would like to replace day number with link to event, which I\'m getting via JSON from database, like on this image:

I'm using jQuery Fullcalendar from arshaw.com/fullcalendar/ and I would like to replace day number with link to event, which I'm getting via JSON from database, like on this image:

I've got small calendar with only one event per day, so default display isn't necessary for me. I need something simpler and cleaner.

Since I'm not very familiar with jQuery I can't figure it myself.

开发者_Go百科Is there a way to replace this:

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

with link to event on that day?


Without modifying the source code of the calendar creating script, you can achieve the desired result with a bit of hacking. Suppose you have a JavaScript object that holds your event URLs like this:

var urls = {
    4: "http://mydomain.com/event.html",
    16: "http://mydomain.com/event2.html",
    22: "http://mydomain.com/event.html"
}

This can be a result of a JSON request. You can then loop through all the days in the calendar and check if there's a link for that day, then update the day number to contain the link:

$('.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>');
    }
});

Just run that snippet every time the calendar is loaded / opened. Without knowing more about the calendar, it's impossible to say where this snippet should be exactly located.


You just need to make a quick modification into your fullcalendar.js

  • Adding the link at the creation
  • Adding the link at the cellules redraw stuff..

Simply replace this line:

(showNumbers ? "<div class='fc-day-number'>" + d.getDate() + "</div>" : '') +

with this line:

(showNumbers ? "<div class='fc-day-number'><a href=\"myURL.com\">" + d.getDate() + "</a></div>" : '') +

and then, this line:

td.find('div.fc-day-number').text(d.getDate());

with this line:

td.find('div.fc-day-number').html("<a href=\"myURL.com\">"+d.getDate()+"<a\>");

Enjoy it ;)

Foo.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号