LayDate的事件弹窗二次渲染不成功解决办法

  • Post author:
  • Post category:其他


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 版权协议,转载请附上原文出处链接和本声明。