你的世纪难题 | Vue第一次获取不到元素的解决办法

第一次点击弹窗按钮,获取弹窗中的元素。打开弹窗获取元素为空,要第二次才能获取。如下为解决方法:

一、this.$nextTick(callback)

通过更新dom后进行获取

methods:{
    play(){
        isShow = true;
        //获取元素
        console.log($('#video'));
        this.$nextTick(function(){
            //获取元素
            console.log($('#video'));
        });
    }
}

二、setTimeOut(fn,0)

通过定时器获取

methods:{
    play(){
        isShow = true;
        //获取元素
        console.log($('#video'));
        setTimeOut(function(){
            //获取元素
            console.log($('#video'));
        }, 0);
    }
}

三、@opened

通过触发打开事件获取

<el-dialog @opened="play"></el-dialog>

methods:{
    play(){
        //获取元素
        console.log($('#video'));
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_41635750/article/details/107754819