【JQuery】日期小插件使用问题小结

日期小插件下载地址:https://www.jq22.com/jquery-info21356

集成到自己程序后发现了以下问题

1. 日期控件初始化的滚动日期没法对齐。

2. 选择日期的时候前端报错:Cannot read property 'childs' of undefined.

排查各种可能的原因,最后发现是我的程序原本将body设置成了display:none,然后在页面加载进行判断是否show(),而这个日期控件的初始化有一大段的代码是放在<script>中,这段<script>放在<body>尾端。

设置成display:none以后,<body>里面所有控件会重新加载,而日期控件涉及到的mobileSelect.js 中和body有关的是这样的

document.body.appendChild(_this.mobileSelect);

默认是加载在body里面的节点后面,但由于设置了display:none,这个加载顺序可能会导致加载不完全找不到相应的节点,因此报错,猜测大概原因应该就是这个。

解决方案是把display:none 改成 visibility:hidden即可。事实证明改完以后就正常了。

display:nonevisibility:hidden 两者都能将元素隐藏起来,但是两者的区别在于

1. display:none 元素不再占用空间。

2. visibility:hidden使元素在网页上不可见,但仍占用空间。

注意visibility还可能取值为collapse

当设置visibility:collapse后,一般的元素表现与visibility:hidden一样,也会占用空间。但如果该元素是与table相关的元素,例如table row、table column、table column group、table column group等,其表现却跟display:none一样,即其占用的空间也会释放。

在不同浏览器下,对 visibility: collapse 的处理方式不同:

  •  1、visibility: collapse 的上述特性仅在 Firefox 下起作用。
  •  2、在 IE 即使设置了 visibility: collapse,还是会显示元素。
  •  3、在 Chrome 下,即使会将元素隐藏,但无论是否是与 table 相关的元素,visibility: collapse 与 visibility: hidden 没有什么区别,即仍会占用空间。

jQuery 操作 display和visibility

<body style="display:none">
$("body").show();

<body style="visibility:hidden">
$("body").css("visibility","visible");

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值