jquery ui datepicker with tooltip - tooltip函数在月更改后不调用

时间:2011-04-04 09:00:29

标签: jquery jquery-ui datepicker

我试图使用工具提示制作jquery ui datepicker(内联为日历)。一切正常,工具提示正在显示,直到我更改日历中的月份。然后工具提示停止工作。我不知道如何解决这个问题,我将不胜感激任何帮助。 下面是我的代码(我使用的是this脚本)。

谢谢!

$(function() {

var specialDays = {
  '2011': {
    '3': {
      '10': {tooltip: "Some event", className: "holiday"}
    },
    '4': {
      '15': {tooltip: "Some another event", className: "holiday"}
    }
  }
};

$('#datepicker').datepicker({beforeShowDay: function(date) {
  var d = date.getDate(),
    m = date.getMonth()+1,
    y = date.getFullYear();

  if (specialDays[y] && specialDays[y][m] && specialDays[y][m][d]) {
    var s = specialDays[y][m][d];
    return [true, s.className, s.tooltip]; // selectable
  }
  return [false,'']; // non-selectable
}});

/* tooltip*/
$(".ui-datepicker-calendar tbody").tooltip();

});

2 个答案:

答案 0 :(得分:2)

使用它,它对我有用:

onChangeMonthYear: function(year, month, inst) {
                            setTimeout("$('.ui-datepicker-calendar tbody').tooltip()", '250');                              
                        }

答案 1 :(得分:0)

$('#datepicker').datepicker的功能包含在函数内部。然后,在工具提示加载时将该函数名称作为回调传递给工具提示函数。

您的事件未绑定的原因是因为HTML正在发生变化。

进一步说明:在工具提示脚本的第115行,有一个可用于回调的事件:

var initDatepicker = function(){
    $('#datepicker').datepicker({beforeShowDay: function(date) {
        // Your code...
    }});
};

$('.ui-datepicker-calendar tbody').tooltip({
    // On tooltip open, init the datepicker
    open: initDatepicker
});