Добавить легенду в jQuery datepicker
Я использую стандартный jQuery Datepicker, и мне нужно изменить его, чтобы отображать легенду внизу. Когда я использую событие beforeShow, я не могу добавить легенду html в datepicker, потому что нет элемента # ui-datepicker-div, а datepicker не предоставляет событие afterShow. Это мой код:
var html = $('#datepickerLegendHolder').html();
$('#start_date.datepicker').datepicker({
"dateFormat": 'yy-mm-dd',
minDate: 0,
showOn: "both",
buttonImage: "/images/calendar-icon.png",
maxDate: "+2Y",
beforeShow: function(event, ui) {
$('#ui-datepicker-div').append(html);
},
onSelect: function (dateValue, inst) {
$('#end_date.datepicker').datepicker("option", "minDate", dateValue);
displayButtons();
}
});
У кого-нибудь есть альтернатива? Tnx
1 ответ
В то время, когда onBeforeShow
событие поднято, элемент #ui-datepicker-div
еще не существует
Обходной путь - использовать setTimeout с небольшой продолжительностью (например, 150 мс), чтобы добавить легенду к этому элементу в обработчике событий. Это не может быть абсолютно надежным, хотя из-за архитектуры плагина я не знаю другого пути.
Примечание: документация перечисляет событие create, но Datepicker действительно реализует фабрику виджетов, поэтому событие create не возникает!
$('#datepicker').datepicker({
...
beforeShow: function(event, ui) {
setTimeout(function() {
$('#ui-datepicker-div').append('lalala');
}, 150);
}
});