0

所以我有一个我认为是一个非常基本的问题,但我一生都无法弄清楚。单击后如何引用选定的日期元素(dom)。我试过这个:

$("#eventCalendar").datepicker({
 onSelect: function(dateText,inst){  
  var activeDateObj = $("#eventCalendar").find('.ui-state-active');  
 } 
});

这会返回一个对象,但我认为它引用了先前选择的元素;如在类中尚未应用到新元素。我真的很惊讶 inst 对象不包含对单击元素的引用。我通过在变量声明周围包装一个快速超时来使这种方法起作用,但这很脏,我想知道是否有更好的方法。提前致谢。

4

2 回答 2

1

解决方案

//...
onSelect: function(date, inst) {
    setTimeout(function() {
        console.log($('a.ui-state-active')); // clicked day's DOM-Element
    }, 0);
}

setTimeout-Wrapper 将在日历刷新后将内容排队。

于 2015-01-22T09:37:52.633 回答
1

回应对 OP 的评论。

据我所知,每次选择一天时,日历似乎都会重新加载包含当月日期的表格,当您更改月份时它也会这样做。

如果你使用.live('click',function(){...})它应该允许你附加你的功能。

对于选择器,这样的东西可能是最好的

 //attached to an input, not displayed inline.
$('#ui-datepicker-div .ui-datepicker table.ui-datepicker-calendar td[class!=ui-state-disabled]')

您现在只需确定选择了哪个日期。

于 2010-05-26T11:42:56.480 回答