Vue2.0 使用axios获取数据后,渲染dom,如何在这之后操作dom(渲染后的)?
在html中用axios返回的数据,渲染dom
<div class="top">
<div v-for="item of content.content" class="dpw">
<img :src="item.url" alt="item.text" class="pw">
<span class="jj">{{item.ctitle}}</span>
<p>{{item.name}}</p>
</div>
</div>
想操作渲染的dom,但是貌似不行this.nextTick()也不行,还是我用错了?
import jQuery from 'jquery'
export default {
data () {
return {
content:[]
}
},
methods : {
show () {
this.$nextTick(function () {
jQuery(".jj").hide();
jQuery(".top > div").hover(function(){
jQuery(".jj",this).slideToggle(500);
jQuery("img",this).animate({
opacity: 0.1
},1,function(){
jQuery(".top > div").mouseleave(function(){
jQuery("img",this).animate({
opacity: 1
},1)
})
});
});
});
},
getData () {
this.$http({
url: `http://192.168.1.108:3000${this.$route.path}`,
method: 'get'
}).then((res) => {
this.content = res.data;
}).catch((res) => {
console.log('error:', res)
})
}
},
beforeRouteUpdate(to, from, next) {
this.$http({
url: `http://localhost:2000/getjson${to.path}`,
method: 'get',
}).then((res) => {
this.content = res.data;
}).catch((res) => {
console.log('error: ', res);
});
next();
},
mounted() {
this.show();
this.getData();
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
放在
getData
请求成功后就可以了为什么要操作dom?
看你代码都是操作dom的动画,不要用jq写动画了,太卡,你把动画都写在css3里面,然后vue来操作class,class负责动画的开关