网上关于laydate插件重新渲染的问题,很多都是让移除日历元素重新添加元素。不过这样会导致一个问题,无法显示渲染前指定的月份
解决方法:触发翻页事件即可实现重新渲染
页面
<div id="date"></div>
<input type="button" onclick="update();" value="更新" />
<script src="laydate/laydate.js"></script>
<script src="jquery-3.3.1.min.js"></script>
JS
var _options = {
elem: '#date'
,position: 'static'
//,calendar: true //是否开启公历重要节日
,mark: _mark
,range: false
,value: null
,showBottom: false
,change: function(value, date, endDate){
console.log("change:" + value);
_choose_day = value;
}
,done: function(value, date, endDate){
}
}
var _choose_day = null
var _lay_d = laydate.render(_options);
function update(){
if(_choose_day == null) {
return;
}
_mark[_choose_day] = "休息";
_lay_d.config.mark = _mark;//需要重新设置值
$('#date .laydate-prev-m').trigger("click");//上一月
$('#date .laydate-next-m').trigger("click");//下一月
}