Программно проверить, был ли отображен календарь - PullRequest
7 голосов
/ 14 июля 2010

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

Я хочу сделать простое условное утверждение, чтобы увидеть, был ли календарь уже отображен в div.Примерно так:

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

Я хочу сделать это, чтобы я мог удалить, а затем повторно запустить календарь программно.По сути, кнопка «сброс».

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

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

Ответы [ 3 ]

7 голосов
/ 14 июля 2010

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

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

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

getElementById('calendar').hasChildNodes()
0 голосов
/ 19 декабря 2014

Вы можете проверить что-то вроде легко

if($('#calendar>*').length !== 0) alert("calendar exists!!");
0 голосов
/ 14 июля 2010

Это своего рода хак, но в каждой ячейке дня есть класс с форматом 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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...