写给还在为时间控件渲染出问题而挣扎的同学

讨论 已结 30 1839
岁月小偷
悬赏:50飞吻
最近也遇到几个说时间控件设置出问题,没弹出或者闪退的问题,把自己的经验分享给有需要的小伙伴额,高手无视或者有更好的方案请不吝赐教哈[嘻嘻]
一般出现这个问题的原因就是采用elem:‘#id’或者其他的".class"这样去渲染一个,我一开始也是这么认为的以为定义一个统一的class然后一次渲染所有就o了,但是也是后面的闪退,追了源码才知道原因。所以后面整改了也强烈的不建议大家采用elem设置成dom节点的id或者class这种形式,因为据我的理解laydate从设计上压根就不支持渲染一类dom的功能,所以这种写法完全没有作用而且容易出现有多个dom匹配到的时候后面的节点出现闪退的情况,还遇到如果前面已经出现了闪退了,再渲染一个也存在“问题”的dom那么这回连闪退都没有看到,不知道是太快了还是压根没出来,这个就没有去验证是那种情形了。反正就是异常现象。具体解决方案看测试代码吧,放百度云上了 https://pan.baidu.com/s/17kuBw1QVIMjVnF8QPHthNA ,社区的编辑器写的代码有时候会遇到被转换了的情况。避免不必要的时间精力的浪费来回折腾。有兴趣的同学可以下下来看看,换个路径,跟layui版本关系不大。不要太古老就行估计。

页面有3个测试按钮,一开始页面是没有初始化控件的,需要点击第一个按钮才会去渲染当前的两个input,这时候就会出现第二个input点击控件闪退的问题。黄色的按钮和红色的按钮都是有问题的。绿色的没问题,而且可以一直追加测试。有什么问题欢迎反馈。希望有所帮助少走弯路。
回帖
  • 洪点
    2018-6-6
    学到了 [good]
    0 回复
  • 0 回复
  • spsyche
    2018-7-31
    给你点赞[good]
    0 回复
  • @spsyche 谢谢[嘻嘻]
    0 回复
  • linq1018
    2018-7-31
    @岁月小偷 借个楼,请问下有没有什么好的方法能获取表格的标题跟数据啊,jq each老是会多获取一些不要的东西

    0 回复
  • @linq1018 你要的是?遍历表格的表头和tbody里面的内容吗?这个一般就是遍历,然后jq的each没怎么使用过,一般是自己写for循环,还有layui.each这个是对jq的each进行的封装,平时用这样也挺多的,没遇到说会把一些不要的东西也给遍历到的情况额,关键看代码是怎么写的还有你说的不要的东西是啥?有没有这几个的截图看看额
    0 回复
  • spsyche
    2018-7-31
    @岁月小偷 大佬就是NB啊,已经可以显示日期框了
    0 回复
  • @spsyche [嘻嘻] 那就好
    0 回复
  • linq1018
    2018-7-31
    @岁月小偷 可能我写的有问题,因为有的时候当前页面有2个或者多个表格,不好去区分。或者说你那里是怎么遍历的,能贴下代码给我看下吗?我都快被这个搞蒙了
    0 回复
  • @linq1018 嗯嗯,遍历其实关键问题是要把遍历的对象找对了,比如我要遍历当前表格下面的某一类输入框比如需要渲染成时间控件的这个,首先要确定得是当前的table下,所以不能是$('input.myDate')这样子显然会把不是我要的范围内的节点都给找到,然后就是如何确定当前表格的问题,这个可能各个框架的组件出来的都稍微不同,的具体分析,比如这个layui的table他会在原始的table的后面追加一个我们看到的表格,姑且叫表格视图吧,这个不是在原始表格里面的,所以我们要遍历的实际上是原始表格的next()这样才能遍历到东西。

    这个只是我遍历的一个场景,不知道能不能解惑,跟你的问题对的上号不。
    0 回复