2016-10-06 75 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

相關問題