Во-первых, прислушайтесь к совету, что дал
Роман, и сделайте так:
$(document).on('click', '.ui-datepicker .ui-state-default', function () {...});
Во-вторых, если после первого раза перестаёт срабатывать, то нужно смотреть на элемент
.ui-state-default в консоли и наблюдать, что с ним происходит после клика. Мне кажется, вполне очевидно, что такого класса больше нет.
Update
Если в найденных ячейках событие срабатывает 1 раз, а попытка поймать его в
document не венчается успехом, какой вывод следует?
Очевидно, что:
— после выбора даты таблица перерисовывается полностью
— всплытие события принудительно останавливают где-то в пределах элемента с инициализацией календаря
Как поступить в таком случае?
1. Можно вспомнить про первую фазу распространения события и написать примерно такое для борьбы с любителями
preventDefaultdocument.addEventListener('click', function (e) {
var target = $(e.target).closest('.ui-state-default');
if (target.length) {
...
}
}, true);
2. А можно (и это правильный способ), почитать
API того плагина, что вы используете, и найти там
вот такую штуку:
$('#datepicker').datepicker({
onSelect: function () {
...
}
});