JUI datepicker: как назначить разные обработчики в зависимости от класса даты в функции onSelect? - PullRequest
0 голосов
/ 06 октября 2011

Я работаю над тем, чтобы получить календарь на год, который выглядит и ведет себя точно так же, как встроенные датчики, назначенные полям ввода на сайте.Поэтому я создал этот блок

<div class="box_content">
   <div class="yearCal" id="cal2"><!-- this will receive the calendar --></div>
 </div>

и назначил объект datepicker элементу с идентификатором 'cal2'.Это отдает мне виджет календаря, показывающий 12 месяцев.Каждый элемент td выглядит следующим образом:

<td about="I receive class 'free' or 'booked' from 'BeforeShowDay' handler">
   <a about="I am the element catching the click and need the parent class"></a>
</td>

Я тестировал настройку функции onSelect DatePicker, используя этот код

onSelect: function(dateText, inst) { 
   console.debug( jQuery(this).parent().attr('class') ); 
}

Но когда я нажимаю на календарный день, я получаю идентификатор 'box_content',Независимо от того, что я пытаюсь, я не получаю родительский элемент.Но мне нужно его получить, поскольку каждый элемент td получает «бесплатный» или «забронированный» класс, когда виджет обрабатывается, и в зависимости от его класса мне нужно выполнить какое-то действие с базой данных.

Скажите, пожалуйста,мне, как это сделать правильно?

1 Ответ

0 голосов
/ 06 октября 2011

Я не вижу, где находится ваш указатель даты, однако, если у вас есть что-то вроде этого:

<td about="I receive the class 'free' or 'booked' from 'BeforeShowDay' event">
   Date: <input type="text" id="datepicker" about="input receiving the onSelect event">
</td>

Вы можете получить доступ к классу td, содержащему указатель даты (для события onSelect), например так::

<script type="text/javascript">
  $('#datepicker').datepicker({
     onSelect: function(dateText, inst) {
        //dosomething
        var tdclass = $(this).parent().attr('class');  
        //dosomethingelse
     }
  });
</script>
...