jquery fullcalendar: готово ли е init?

Използвам тази функция, за да променя датата за един календар (jquery fullcalender от arshaw).

function cal_gotoDate(d){
    console.log('cal_gotoDate ' + curCal + ' ' + d);    
    $('#calendar'+curCal).fullCalendar('gotoDate', d);
    cal_setTitle();
    return false;
}

Проблемът: Календарът ще се зарежда динамично с помощта на ajax. Може да се случи календарът да не се зареди, когато потребителят се опита да промени датата. Следователно получавам грешка, ако не са инициализирани:

TypeError: $(...).fullCalendar is not a function

Бих искал да проверя дали fullcalender $('#calendar'+curCal) е инициализиран.


person Mike    schedule 18.04.2013    source източник
comment
можете да тествате нещо като if($.fn.fullCalendar) {...}   -  person Aamir Afridi    schedule 18.04.2013


Отговори (1)


Не съм сигурен, че това е най-доброто решение, но работи перфектно - използвайте fullcalendar зареждане обратно извикване и задайте глобален булев флаг, например:

<script type="text/javascript">
    var globalflag = false;
    $(document).ready(function() {
        $('#calendar').fullCalendar({
            //calendar initialization code
            loading: function (bool) { 
                if (!bool){
                    globalflag = true;
                }
                else{
                    globalflag = false;
                }
            }
        })
    });
</script>

и сега можете да проверите състоянието на globalflag.

Например използвам зареждане на обратно извикване за индикатор за показване/скриване на напредъка.

person Lukasz Koziara    schedule 18.04.2013