Bug相关

jquery 相关

  • 使用jq的toggle()、toggleClass() 、hide()、slideUp(),fadeOut()等类似有隐藏功能的jq方法时的注意事项
    由于用户操作,会引发的非逻辑错误的bug

    以下代码为例:

          <input type="text" autocomplete="false" id="" placeholder="输入金额">
          <div class="box">
              <ul>
                  <li>我是内容1</li>
                  <li>我是内容2</li>
                  <li>我是内容3</li>
                           ···
              </ul>
          </div>
    
    

需求:文档结构为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以上,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容