[javascript] layui时间选择器laydate重新渲染问题
问题:初次渲染laydate时,根据mark属性值markObj在日期上做标记;但是当mark的属性值markObj变化,重新渲染laydate时,新的日期标记并未生效。初次渲染:laydate.render({
elem: '#date-range'
,eventElem: '.calendar-icon'
,trigger: 'click'
,type: 'date'
,range: '至'
,format: 'yyyy-MM-dd'
, mark: markObj
,done: function (value) {
startTime = value.split(" 至 ");
endTime = value.split(" 至 ");
}
});
markObj变化后,再次渲染:
laydate.render({
elem: '#date-range'
,eventElem: '.calendar-icon'
,trigger: 'click'
,type: 'date'
,range: '至'
,format: 'yyyy-MM-dd'
, mark: markObj
,done: function (value) {
startTime = value.split(" 至 ");
endTime = value.split(" 至 ");
}
});
思考:
laydate渲染后所附带的lay-index会被载入缓存,所以再次laydate.render时,只是修改lay-index标识的值,而不会重新去渲染
解决方法:
在重新渲染前,remove掉整个laydate的div块容器;然后再append一个laydate的div块容器,最后再使用laydate.render重新渲染。
ps.如果发现laydate样式不一样了,可以再检查中调好样式,再将对应的css代码写在<style>中加上!important.
虽然方法很愚蠢,但是奏效了。
一看时间选择器 我直呼好家伙 时间都可以选择了这不是时光机?
页:
[1]