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

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

/ 猿问

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

自酌一杯酒 2019-02-11 10:02:17

我想获取一页面整体高度,用的

$(document).height();

问题:

在没有调用ajax请求的时候高度打印出来的是1102px;

调用请求后,数据加载完,再打印还是1102px;

但是我延迟两秒执行,那这样打印出来的高度就是6987px;

有不有什么办法,不延迟执行,但是获取的高度是真实的高度?

vue的这几个(created,mounted,updated)生命周期都打印了,都是1102。求大神解决下!

https://img2.mukewang.com/5c60d758000117d309500778.jpg

查看完整描述

2 回答

已采纳
?
Caballarii

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

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

https://img3.mukewang.com/5c6116390001e8ae09030568.jpg

红色框框

查看完整回答
反对 回复 5天前

添加回答

回复

举报

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