優秀な質問です。
あなたが気づいた奇妙な動作を修正するために、documentationに何も見つかりませんでした。
本当には私にバグのように見えます。
私はそれに取り組んで、onSlect
コールバックを使用してウォークアウェイを見つけました。
これは、ビルトインアニメーションの表示/非表示を無効にすることを意味します。
私は大したことだとは思わない...
this CodePen demoを参照してください。ここで問題が再現され、この解決策と比較することができます。
そして、以下は、切り取りと貼り付けが簡単なコード(デモのconsole.logsを除く)です。
$('#datePickTweaked').multiDatesPicker({
// OPTIONS
showAnim:"", // Disables the show/hide animation.
beforeShowDay: $.datepicker.noWeekends, // No week-ends.
dateFormat: "d/m/yy",
maxDate: "+3m",
minDate: "-1m",
multidate: true,
defaultDate:"0d", // Default date selection as of "today".
// Needed to show the right month on focus.
// The "walk-around" is HERE, in the "onSlect" callback.
onSelect: function(){
// Get the "datepicker" object.
var datepickerObj = $(this).data("datepicker");
// Get the "settings" object within "datepicker".
var datepickerSettings = datepickerObj.settings;
// Get the last date picked.
var tempDay = datepickerObj.selectedDay;
var tempMonth = datepickerObj.selectedMonth+1;
var tempYear = datepickerObj.selectedYear;
var pickedDate = tempDay+"/"+tempMonth+"/"+tempYear;
// Remove previous "defaultDate" property.
delete datepickerSettings["defaultDate"];
// Add a new defaultDate property : value.
datepickerSettings.defaultDate=pickedDate;
// "Hacky trick" to avoid having to click twice on prev/next month.
$("#datePickTweaked").blur();
setTimeout(function(){
$("#datePickTweaked").focus();
},1); // 1 millisecond delay seems to be enought!!!
}
});
ありがとうございました。私にはうってつけです。 –