JQuery UI datepicker: как связать событие ПОСЛЕ отображения календаря? - PullRequest
8 голосов
/ 05 марта 2011

Я использую 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 ]

10 голосов
/ 05 марта 2011

Для меня не имеет смысла, почему вы не можете вызвать bind для данного конкретного события datepicker (или, в этом отношении, большинства datepicker событий). Большинство других виджетов jQueryUI допускают позднюю привязку событий.

Однако вы можете попробовать следующее. hasDatepicker применяется к датщикам, и повторный вызов .datepicker для этих элементов означает , а не повторную инициализацию виджета, это просто изменение параметра:

$('.hasDatepicker').datepicker("option", "beforeShowDay", 
    function(date) { ... });
1 голос
/ 07 октября 2016

С

$('.hasDatepicker').datepicker("option", "beforeShowDay", 
    function(date) { ... });

У меня следующая ошибка:

TypeError: $ (...). Datepicker не является функцией

$(".hasDatepicker").datepicker('option', 'beforeShowDay', function(event) {

Похоже, вы этого не проверяли.

1 голос
/ 10 мая 2014
$('.ui-datepicker-current-day').click();
0 голосов
/ 05 марта 2011

Вам нужно .live(). http://api.jquery.com/live/

$('.mySpecialContainer').live('beforeShowDay', function(date) { ... });

Если подумать, то, я думаю, я неправильно понял вопрос ... Вам нужно иметь средство выбора даты без функции, а потом дать ей функцию? Вам, вероятно, будет лучше, если вы уберете указатель даты и снова включите его.

...