Программно проверьте, чтобы видеть, был ли календарь представлен

Это должно быть просто, но я глуп так...

Я хочу сделать простой условный оператор, чтобы видеть, был ли календарь уже представлен в отделении Чем-то вроде этого:

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

Я хочу сделать это так, чтобы я мог удалить, затем re-init календарь программно. В основном, кнопка 'сброса'.

Кто-то может сообщить мне правильный синтаксис, чтобы проверить, был ли объект fullCalendar представлен?

Заранее спасибо!!

7
задан MVO 14 July 2010 в 18:22
поделиться

2 ответа

Я разобрался. В jQuery есть селектор .children(). Я смог сделать условный оператор на свойстве .length этого селектора, чтобы увидеть, есть ли содержимое в div:

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

Альтернативный способ сделать это без jQuery:

getElementById('calendar').hasChildNodes()
7
ответ дан 7 December 2019 в 07:39
поделиться

Это своего рода хак, но каждая ячейка дня имеет класс с форматом 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);
    }
}
0
ответ дан 7 December 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: