vue重新渲染后无法获取节点

如题:
我有一个卡片切换组,点击标题切换不同的卡片;我给其中一个卡片内容盒子家了一个id值,当切换卡片时判断标题下标,找到对应卡片内容,并获取到我设置的那个ID值————我在卡片切换时有一个判断:

vm.tabIndex = i;//切换对应内容
if(i == 1){
    Vue.nextTick(function(){
        var dom = document.getElementById('dom1');//null
        ...//后续方法
    })
}

如代码所示,在切换方法中,首先更新点击卡片标题下标,显示对应内容,然后判断当前卡片是否为下标1,更新节点后获取节点'dom1'。但是返回为null。

另:在我的切换方法中还加入了一个swiper插件,同样是
if(i == 3){

Vue.nextTick(function(){
    var bannerswiper = new Swiper('.stroe-swiper', {...});
})

}
为什么插件同样是重新渲染后获取节点就不报错,而反而我自己直接获取节点报错,返回为null?

最后找到原因了:
Vue.nextTick(function(){

setTimeout(function(){
    var dom = document.getElementById('dom1');//htmlObject
    ...//后续方法
   },300);
})
阅读 3.2k
1 个回答

你控制div显示与隐藏用的什么,v-if,v-show,还是直接dom操作?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题