所以我认为这是一个非常基本的问题,但我不能让我的生活弄清楚。单击后如何引用所选日期元素(dom)。我试过这个:
$("#eventCalendar").datepicker({
onSelect: function(dateText,inst){
var activeDateObj = $("#eventCalendar").find('.ui-state-active');
}
});
这会返回一个对象,但我认为它引用了之前选择的元素;因为在类中尚未应用于新元素。我真的很惊讶inst对象不包含对被点击元素的一些引用。我通过在变量声明周围包装一个快速超时来使这个方法工作,但这很脏,我想知道是否有更好的方法。提前谢谢。
答案 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会在日历刷新后对这些内容进行排队。