以编程方式检查日历是否已呈现

时间:2010-07-14 18:10:10

标签: javascript jquery fullcalendar

这应该很简单,但我很蠢......

我想做一个简单的条件语句来查看日历是否已经在div中呈现。像这样:

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

我想这样做,以便我可以删除,然后以编程方式重新初始化日历。基本上是一个'重置'按钮。

有人可以告诉我正确的语法来检查是否已经渲染了fullCalendar对象吗?

提前谢谢!!

3 个答案:

答案 0 :(得分:7)

我明白了。 jQuery有一个.children()选择器。我能够在该选择器的.length属性上执行条件语句,以查看div中是否有任何内容:

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

在没有jQuery的情况下,另一种方法是:

getElementById('calendar').hasChildNodes()

答案 1 :(得分:0)

这是一种黑客攻击,但每天的单元格都有一个格式为fc-day-##的类。最后一个单元格的编号为41(在firebug中查看)。您可以尝试选择td.fc-da-41,如果您获得任何元素,则日历已完全加载。

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

可能会将其设置为使用.setTimeout()

每隔几百毫秒检查一次
var checkCal = function() {
    if ($('td.fc-day-41').size() > 0) {
        //calendar ready
    } else {
        window.setTimeout(checkCal(), 200);
    }
}

答案 2 :(得分:0)

您可以轻松查看

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