Bug相关

2018-12-10  本文已影响0人  GoldenSide

jquery 相关

需求:文档结构为input+div.box>ul>li,ul>li 结构的高度大于box的高度,超出部分scroll,当点击box的时候,展开ul>li,滚动到底部点击最后一个li标签,将li标签的包含的文本内容赋值给input的value,同时box要求被折叠、隐藏、滑出、淡出等从页面消失的效果。
问题描述:(1)当滑动ul>li至底部,ul>li滚动还没有停下来的时候,就马上点击最后一个li标签的时候,可能会出现获取的值
undefined 或者得到了是另一个li标签的文本内容(2)或者是ul>li的高度远远大于box的高度时,就算滚动到底部的,等ul>li都静止了,再点击最后一个li标签同样会出现undefined

原因分析: 获取数据的操作是要延后于显示于隐藏等操作的,所以当点击li标签的时候,js会马上驱动浏览器的内核来重新渲染页面,让box消失等效果, 然后浏览器再来获取页面上的li标签的文本内容,可是现在最底部的那个li标签已经消失不见了,所以你可能得到的是undefined或者是其余li标签的文本内容值

解决办法:我们加上延迟delay(300),这里至少300以上,

上一篇 下一篇

猜你喜欢

热点阅读