第一次点击按钮打开弹窗,获取弹窗中的元素。获取到的元素为空,要打开的第二次才能获取
。
解决方法:
一、setTimeOut(fn,0)
methods:{
btnMethods(){
vueObject.moreDialog = true;
//获取元素
console.log('外:'+$('ul li').length);
setTimeout(function(){
//获取元素
console.log("内:"+$('ul li').length);
},0);
}
二、this.$nextTick(callback)
注意:this.$nextTick(callback),当dom更新后执行的回调。
methods:{
btnMethods(){
vueObject.moreDialog = true;
//获取元素
console.log('外:'+$('ul li').length);
this.$nextTick(function(){
//获取元素
console.log("内:"+$('ul li').length);
});
}
三、@opened
opened是Dialog对话框中的事件
注意:当使用opened方法时,是打开弹窗之后再进行的操作。
官网描述如下:
HTML
<el-dialog @opened="openMethods">
</el-dialog>
JavaScript
methods:{
openMethods(){
//获取元素
console.log('外:'+$('ul li').length);
}
}