JQuery UI datepicker: как привязать событие после отображения календаря?
Я использую datepicker. Обычный способ привязки события, скажем, например,beforeShowDay
будет:
$('.selector').datepicker({
beforeShowDay: function(date) { ... }
});
что мне нужно, так это связать beforeShowDay
событие после отображения календаря. Итак, предположим, сначала я визуализирую календарь:
$('.mySpecialContainer').datepicker({
//in this moment, for some reason, I am not allowed to bind nothing (that's not me who renders the calendar, that's why I am not allowed)
});
и затем, если я попытаюсь связать что-то обычным способом:
$('.mySpecialContainer').datepicker({
beforeShowDay: function(date) { ... }
});
календарь будет - конечно-визуализирован снова внутри '.mySpecialContainer'
, вместо того, чтобы просто связывать событие. У меня есть попробовал:
$('.mySpecialContainer').bind('beforeShowDay', function(date) { ... });
но это было просто отчаянное действие:)
4 ответов
для меня не имеет смысла, почему вы не можете позвонить bind
об этом конкретном datepicker
событие (или, если на то пошло, большинство datepicker
событий). Большинство других виджетов jQueryUI допускают позднюю привязку событий.
тем не менее, вы можете попробовать следующее. hasDatepicker
применяется к datepickers и вызывает .datepicker
снова на тех элементах не перезапустить виджет, просто изменив вариант:
$('.hasDatepicker').datepicker("option", "beforeShowDay",
function(date) { ... });
С
$('.hasDatepicker').datepicker("option", "beforeShowDay",
function(date) { ... });
у меня есть следующая ошибка:
TypeError: $(...).datepicker не является функцией
$(".hasDatepicker").datepicker('option', 'beforeShowDay', function(event) {
Кажется, что вы не проверили это.
вам нужно .live()
.
http://api.jquery.com/live/
$('.mySpecialContainer').live('beforeShowDay', function(date) { ... });
С другой стороны, я думаю, что неправильно понял вопрос... Вам нужно иметь datepicker без функции, а затем позже дать ему функцию? Вероятно, вам лучше всего удалить datepicker и снова надеть его.