2016-01-01 42 views
0

我想使用multidatespicker顯示13個月。我已經得到以下代碼:用行和列顯示日期選擇器的任意月份

$(document).ready(function(){ 

     $('#my_calendar').multiDatesPicker({ 
      numberOfMonths: [4, 4], 
      dateFormat: 'dd-mm-yy', 
      defaultDate: '01-01-2015',     
      monthNames: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'], 
      dayNamesMin: ['Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab', 'Dom'], 
      onSelect: function(value, date) { 
       $("#my_calendar > div > div.ui-datepicker-group").slice(-3).remove(); 
       //$('#my_calendar').multiDatesPicker("refresh"); 
      } 
     }); 

     $("#my_calendar > div > div.ui-datepicker-group").slice(-3).remove();    
    }); 

當multidatespicker加載時,顯示13個月正確。但是,選擇事件時會觸發,然後刷新multidatespicker並顯示16個月。我試圖將「.slice(-3).remove()」也放入onSelect正文,但它沒有奏效。

我該如何避免刷新?

回答

0

問題已解決。

我修改 「的jquery-ui.js」 文庫上這種方式: 1.添加新屬性稱爲numberOfHiddenMonths:

/* Determine the number of hidden months to show. */ 
_getNumberOfHiddenMonths: function (inst) { 
    var numHiddenMonths = this._get(inst, "numberOfHiddenMonths"); 
    return (numHiddenMonths == null ? 0 : numHiddenMonths); 
} 
  • 更新「_updateDatepicker 「功能加上幾行:

    _updateDatepicker: function(inst) { 
    this.maxRows = 4; //Reset the max number of rows being displayed (see #7043) 
    datepicker_instActive = inst; // for delegate hover events 
    inst.dpDiv.empty().append(this._generateHTML(inst)); 
    this._attachHandlers(inst); 
    
    /* This is the code necesary to hide the months */  
    var numOfHiddenMonths=this._getNumberOfHiddenMonths(inst); 
    if (numOfHiddenMonths>0) $("#" + inst.id + " > div > div.ui-datepicker-group").slice(-1*numOfHiddenMonths).remove(); 
    /*------------- End -------------------------------------*/ 
    
  • 現在,我可以使用下面的代碼隱藏,我想的月數,在我的情況下,3個月:

    $('#calendario').multiDatesPicker({ 
          numberOfMonths: [4, 4], 
          numberOfHiddenMonths: 3, 
          defaultDate: '01-01-2015', 
          dateFormat: 'dd-mm-yy', 
          monthNames: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'], 
          dayNamesMin: ['Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab', 'Dom'] 
         }); 
    
    相關問題