LayerDate日期插件渲染多个class出现闪现问题解决方案

当使用LayerDate日期插件在表单中动态添加行时,由于lay-key属性冲突导致日期插件闪现。博客提出了一个解决方案:在渲染时删除lay-key属性,确保每个实例的唯一性,从而避免冲突。通过动态克隆并添加行,并对每个新增元素重新渲染layDate,同时移除lay-key属性,成功解决了日期插件的闪现问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LayerDate日期插件渲染多个class出现闪现问题解决方案

填写表单的时候有时候会需要添加一行表单的业务逻辑,而表单要用到LayerDate的话便不可避免的出现多个class的情况

这种情况下后面的class是无法渲染的,layerDate官网提出了解决方法:

//同时绑定多个
lay('.test-item').each(function(){
  laydate.render({
    elem: this
    ,trigger: 'click'
  });
});

但是这种方法依然不能解决,因为layDate 初始化的时候会自动生成一个 lay-key="",直接复制代码会把这个 lay-key 也一起复制过来,但是页面中如果有 lay-key 的值相同,就会发生冲突,造成弹窗一闪而过的效果。

如何解决呢?只用渲染的时候将lay-key属性删掉就可以了:

 //添加一行
    function add() {
        var $tr = $("#getContent").clone();
        $("#list").append($tr);
        //重新分配lay-key
        lay('.test-item').each(function(){ 
             laydate.render({ 
              elem: this ,
              trigger: 'click'
        }); 

        $('.test-item').removeAttr('lay-key') 
      });
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值