2016-10-06 76 views
4

我正在使用jquery日历。我正在尝试为每个日历单元格插入一个新的类名称。它会被添加,但它会在点击日历时被删除。将自定义类名添加到jquery日历单元格

基本上它刷新每次点击的日历,所以新添加的类在刷新时被删除。

如何保留课程名称?

这里是我的代码

$(function() { 
    $('#custom-date-format').multiDatesPicker({ 
    dateFormat: "y-m-d" 
    }); 
    $('.ui-state-default').addClass("calendar_bg"); 
}); 

Demo

回答

1

使用回调函数的Widget

$('#DatePicker').datepicker({ 
     //The calendar is recreated OnSelect for inline calendar 
     onSelect: function (date, dp) { 
      updateDatePickerCells(); 
     }, 
     onChangeMonthYear: function(month, year, dp) { 
      updateDatePickerCells(); 
     }, 
     beforeShow: function(elem, dp) { //This is for non-inline datepicker 
      updateDatePickerCells(); 
     } 
    }); 

    updateDatePickerCells(); 

    function updateDatePickerCells(dp) { 
     /* Wait until current callstack is finished so the datepicker 
      is fully rendered before attempting to modify contents */ 
     setTimeout(function() { 
      $('.ui-datepicker td > *').each(function (idx, elem) { 
       $(this).addClass("calendar_bg"); 
      }); 
     }, 0); 
    } 

See Demo

对于multiDatesPicker()

$(function() { 
    $('#from-input').multiDatesPicker({ 
     beforeShow: function(elem, dp) { 
      updateDatePickerCells(); 
     } 
    }); 
}); 
+0

谢谢。这有帮助。 – user6725932

0

你为什么不设覆盖现有.ut-state-default背景色,而不是去增加新的吗?

.ui-state-default{background: #ffeb3b !important} 
+0

我使用类不仅用于bg颜色的其他目的,所以它会很高兴知道添加类名的可能性。 – user6725932

0

这是一个众所周知棘手的jQuery UI日历的问题,看到这个问题jQuery ui - datepicker prevent refresh onSelect

反正修复然而,添加inst.inline = false;的选择,这样

$('#custom-date-format').multiDatesPicker({ 
    dateFormat: "y-m-d",  
    onSelect: function(date, inst){ 
     inst.inline = false; 
     $('.ui-state-default').addClass("calendar_bg"); 
    }  
}); 

看到一个demo,记,它会在multidatespicker.js中引发错误。这个插件似乎有问题。

+0

但是,当你在下个月点击时,这会删除课程。 – user6725932

0

最好使用现有的类名并覆盖其默认样式。

添加这种风格.ui-widget-content a.ui-state-default { background: #ffeb3b }

下面是日期选择器的相同demo

相关问题