Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jQuery UI datepicker -- не биндится при загрузке (https://javascript.ru/forum/jquery/3753-jquery-ui-datepicker-ne-binditsya-pri-zagruzke.html)

mkrylov 20.05.2009 12:33

jQuery UI datepicker -- не биндится при загрузке
 
Друзья, помогите!
На страницу положил jQuery UI datepicker, использую его как фильтр по датам, т.е. если у меня есть страницы, относящиеся к конкретной дате, то я эту дату вывожу в календаре, иначе я делаю дату не кликабельной.
Делаю это вот так:
var list = {};
getEventsDatesList();

$j("#calendar").datepicker({
                defaultDate: list[0],
                changeMonth: false,
                changeYear: false,
                minDate: new Date(2009, 4 - 1, 1),
                maxDate: new Date(2009, 12 - 1, 31),
                onSelect: function(dateText) {
                    window.location = "Affiche-List.aspx?date=" + (dateText.replace('.', '-').replace('.', '-'));
                },
                beforeShowDay: function(date) {
                    return [list[date], 'event'];
                },
                onChangeMonthYear: function(year, month, inst) {
                    alert(list[0] + ', ' + list[1] + ', ' + list[2]);
                    lblMonthName.html(arrMonthNames[month - 1]);
                },
                monthNames: arrMonthNames,
                monthNamesShort: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн',
		        'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],
                dayNames: ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'],
                dayNamesShort: ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'сбт'],
                dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
                dateFormat: 'yy.mm.dd',
                firstDay: 1
            });

function getEventsDatesList() {
                //заполняет массив датами, которые следует отобразить
                ...                
                list[new Date(date[2], date[0] - 1, date[1])] = true;
}


активные даты биндятся так:
beforeShowDay: function(date) {
                    return [list[date], 'event'];
                }

но при загрузке страницы, на текущем месяце активная дата не показывается (а она в массиве есть), но если покликать по стрелкам смены месяцев и вернуться на текущий месяц -- все ок, она подхватывается.
Такое впечатление, что я чего-то не далаю при первой инициализации контрола, только вот что именно? =)
Заранее благодарю за любые комментарии!

x-yuri 20.05.2009 18:28

beforeShowDay: function(date) {
    console.log([date, list[date]]);
    return[list[date], 'event'];
}

mkrylov 20.05.2009 18:45

Цитата:

Сообщение от x-yuri (Сообщение 19575)
beforeShowDay: function(date) {
    console.log([date, list[date]]);
    return[list[date], 'event'];
}

Вау! Работает =) А можно вас попросить дать комментарий, что конкретно дает console.log([date, list[date]]); кроме вывода содержимого в лог файрБага, плиз. Необходимость "дернуть" ассоциативный массив?

mkrylov 20.05.2009 19:06

...хмм...все же не работает как нужно. Срабатывает только при обновлении страницы принудительно (F5) =(

x-yuri 20.05.2009 20:36

:D console.log пишет во вкладку console firebug'а и все. Это было предложение заняться отладкой ;)


Часовой пояс GMT +3, время: 23:39.