调试流程

js执行了,但是样式不对:

1.先看核心代码最外部调用代码


image.png

2.再看内部函数getData()


image.png

3.在success里 console出来结果了,再往下找。console这里的结果,发现也是对的
image.png

4.继续往下找,此时只剩瀑布流。这是去看start方法,发现里面有很多计算出来的变量还和宽度相关,这时就需要将这些变量console出来,看看是否有计算错误


image.png

5.代码里的this.$ctWidth,按字面意思应该是具体数值,说明这里有问题
image.png

这句话,等号右边的意思是 给$ct 重新设置宽度,去了赋值 这话意思就是改变$ct的宽度
  • $node.css( 'display', 'none' ),这么写意思是给 node 设置css
  • a = $node.css( 'display', 'none' ) ,这种赋值语句没用。既然没用写了 后期可能就会存在bug
    image.png

    直接改变$ct的宽度
    image.png

    image.png

    6.现在跑通了 继续往下看
    image.png

    image.png

    此处没问题继续往下看
    image.png

    把能打印的都给打印出来调试
    image.png

    undeifined 发现是start里那个变量名字的问题,就是刚才的变量itemWidth
    7.现在瀑布流逐渐正常,接下来调整图片高度。图片大说明很可能是css写错了。这时候就用 “审查元素” 去看看
    image.png

    image.png

    image.png

    养成习惯,当 a 标签作为容器时,写上 display: block 要不它行内元素,没盒子的特性了
    image.png

    看 block时,蓝色是a标签 全部的
    image.png

    去掉block,高度就没了。这个会引起 点击事件不生效的bug
    这里的width没有px
    image.png

    image.png

    8.css更改后可以跑通了,这里发现ajax请求的都是一个页面
    image.png

    console中发现请求了8次,执行的没有那么多次。函数未做节流处理(滑到底部请求的时候,给上个锁,免得一直往下划会一直请求,请求成功时,再把锁置为false就行)
    image.png

image.png

image.png

image.png

因为可能会请求失败,请求失败也算请求结束,所以得写个error的回调
image.png

image.png

这回再console 会发现在出来结果之前,只能执行一次
image.png

如果lock为真,则啥也不做跳出去,否则上个锁 开始请求 一开始是false 所以不跳出,给lock设置为true,这时候发送请求,请求返回结果之前,lock一直都是true 。所以这时多次滑动就会一直都是跳出函数 当请求成功了,lock设置为false,这时候一切和一开始一样了,可以继续发请求了
image.png

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

友情链接更多精彩内容