为了账号安全,请及时绑定邮箱和手机立即绑定

用vue.js渲染后获取内容高度的问题

用vue.js渲染后获取内容高度的问题

自酌一杯酒 2019-02-11 10:02:17
我想获取一页面整体高度,用的$(document).height();问题:在没有调用ajax请求的时候高度打印出来的是1102px;调用请求后,数据加载完,再打印还是1102px;但是我延迟两秒执行,那这样打印出来的高度就是6987px;有不有什么办法,不延迟执行,但是获取的高度是真实的高度?vue的这几个(created,mounted,updated)生命周期都打印了,都是1102。求大神解决下!
查看完整描述

2 回答

已采纳
?
Caballarii

TA贡献1123条经验 获得超629个赞

recommendListData方法是异步的,按顺序写并不是按顺序执行的,要么把获取高度以及后面的操作都写到$.ajax的success回调里,要么用co或者async/await封装成同步操作。

查看完整回答
反对 回复 2019-02-11
  • 自酌一杯酒
    自酌一杯酒
    最初是写到success的回调里面,但是高度还是不变。我想可能是数据加载完了,但是页面还没渲染好,就把它移到mounted方法里面去了。 应该将它写在wactch方法里面,再将高度写到$nextTick函数里。 watch:{ recommendList(){ } }
  • 自酌一杯酒
    自酌一杯酒
    data:{ recommendList: [], } watch:{ recommendList(){ this.$nextTick(function(){ console.log($(document).height()); }) } }
?
自酌一杯酒

TA贡献3条经验 获得超0个赞

https://img1.sycdn.imooc.com//5c6116390001e8ae09030568.jpg

红色框框

查看完整回答
反对 回复 2019-02-11
  • 2 回答
  • 0 关注
  • 6415 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信