Jquery UI Datepicker beforeShowDay工具提示

时间:2017-07-08 19:19:42

标签: javascript jquery jquery-ui-datepicker jquery-ui-tooltip

我找到this线程,关于在StackOverflow上将工具提示添加到禁用日期,并且无法弄清楚如何将其添加到我的代码中。

如果有人可以帮助我,我会很高兴。

到目前为止我的代码:

beforeShowDay: function(disabledDates) {
  //Concatenating All dates before they are sent in to beforeShowDay
  var localDateArray = parsedDates.concat(addWeekendToDisabled(), disableToday(), disableTomorrow());

  var string = jQuery.datepicker.formatDate('yy-mm-dd', disabledDates);
  return [localDateArray.indexOf(string) === -1];

},

以下是来自显示日期here

之前的Jquery UI Datepicker官方文档
  

beforeShowDay
  
  类型:功能(日期日期)
  默认值:null
  将日期作为参数并且必须返回数组的函数:
  [0]:true / false表示此日期是否可选   [1]:要添加到日期单元格的CSS类名称或默认演示文稿的“”   [2]:此日期的可选弹出工具提示

1 个答案:

答案 0 :(得分:0)

这是我为另一个问题做出的旧CodePen ...... 您问题的相关代码如下。

CSS 在禁用日期重新启用指针事件:

pointer-events:initial !important;

然后,在beforeShowDay上,当您返回false以禁用日期时,您还可以返回一个类(对于背景颜色,例如AND指针事件)< / em>的。
您可以使用该类将正确的工具提示消息从数组附加到禁用日期。

所以要附加必须在元素的title属性中的消息,在实例化datepicker之后执行类似的操作:

$(document).find(".ui-state-disabled.red").attr("title",disabledReason[0]).tooltip();


修改
看起来在选择了一个日期后,我的伎俩不起作用...... 因为重新绘制了DatePicker。

所以这是使用onSelectsetTimeout()

的绕行方式
onSelect: function(){
    setTimeout(function(){
        $(document).find(".ui-state-disabled.red").attr("title",disabledReason[0]).tooltip();
        $(document).find(".ui-state-disabled.green").attr("title",disabledReason[1]).tooltip();
    },10);
}

它正在第二个CodePen中工作。