开发者

Programmatically check to see if calendar has been rendered

This should be simple, but I'm stupid so...

I want to do a simple conditional statement to see if the calendar has already been rendered within开发者_JAVA技巧 a div. Something like this:

if ( $('#calendar').fullCalendar() )
{
  alert("calendar exists!!");
}

I want to do this so that I can remove, then re-init the calendar programatically. Basically, a 'reset' button.

Can someone please let me know the proper syntax to check if a fullCalendar object has been rendered?

Thank you in advance!!


I figured it out. jQuery has a .children() selector. I was able to do a conditional statement on the .length property of that selector to see if there was any content in the div:

if ( $('#calendar').children().length > 0 ) {
    alert("calendar exists!!");
}

An alternative way to do this, without jQuery, is:

getElementById('calendar').hasChildNodes()


This is kind of a hack, but each day cell has a class with the format fc-day-##. The last cell has the number 41 (check it out in firebug). You could try to select td.fc-da-41 and if you get any elements then the calendar is fully loaded.

if ($('td.fc-day-41').size() > 0) {
    //calendar ready
}

Maybe set it to check every couple hundred milliseconds with .setTimeout()

var checkCal = function() {
    if ($('td.fc-day-41').size() > 0) {
        //calendar ready
    } else {
        window.setTimeout(checkCal(), 200);
    }
}


You can check something like easily

if($('#calendar>*').length !== 0) alert("calendar exists!!");
0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜