jquery ui datepicker onselect inst target

时间:2010-05-26 09:04:04

标签: jquery jquery-ui datepicker instance onselect

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

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

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

2 个答案:

答案 0 :(得分: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]')

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

答案 1 :(得分:1)

<强>解决方案

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

setTimeout-Wrapper会在日历刷新后对这些内容进行排队。