LayDate的事件弹窗二次渲染不成功解决办法
关于页面上同一个input绑定了laydate,每次需要展示的选择时间范围动态更改不生效问题,我在网上找了好多博客,又将input框删掉,重新创建的,也有换lay-index的,但是都不成功,就去看了下源码,input框绑定事件的逻辑:
//绑定的元素事件处理
Class.prototype.events = function(){
var that = this
,options = that.config
//绑定呼出控件事件
,showEvent = function(elem, bind){
elem.on(options.trigger, function(){
bind && (that.bindElem = this);
that.render();
});
};
if(!options.elem[0] || options.elem[0].eventHandler) return;
showEvent(options.elem, 'bind');
showEvent(options.eventElem);
这里有个元素的EventHandler判断,如果,元素已经绑定了事件,就不会重新绑定事件,不会刷新元素的option,所以每次重新绑定前将元素的eventHandler = false,就可以重新渲染了:
$('#beginTime')[0].eventHandler = false
真的坑,其实这个应该在option里加个配置的。还整的看了一遍源码
版权声明:本文为lxk199141原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。