点击第一次不出现div,点击第二次才出现?

点击第一次不出现div,点击第二次才出现?
如上图,我点击右上角的圆,下面四个圆出现,但问题时我第一次点击不起作用,要点第二下才会出现,是什么原因?

<div class="main_top">

<div class="top_img1" @click="appear()"></div>

<div id="eject1"></div>

<div id="eject2"></div>

<div id="eject3"></div>

<div id="eject4"></div>

</div>

appear() {

let eject1 = document.getElementById("eject1");

let eject2 = document.getElementById("eject2");

let eject3 = document.getElementById("eject3");

let eject4 = document.getElementById("eject4");

if (eject1.style.display == "none" && eject2.style.display == "none" &&

eject3.style.display == "none" && eject4.style.display == "none"

) {

eject1.style.display = "block";

eject2.style.display = "block";

eject3.style.display = "block";

eject4.style.display = "block";

} else {

eject1.style.display = "none";

eject2.style.display = "none";

eject3.style.display = "none";

eject4.style.display = "none";

}

},


回答:

不要在vue里面过度依赖jquery或者直接性的操作Dom


下面是合理写法

<template>

<div class="main_top">

<div class="top_img1" @click="appear()"></div>

<div v-show="showEject" id="eject1"></div>

<div v-show="showEject" id="eject2"></div>

<div v-show="showEject" id="eject3"></div>

<div v-show="showEject" id="eject4"></div>

</div>

</template>

<script>

export default {

data() {

return {

showEject: true

}

},

methods: {

appear() {

this.showEject = !this.showEject

}

}

}

</script>


回答:

                appear() {

let eject1 = document.getElementById("eject1");

let eject2 = document.getElementById("eject2");

let eject3 = document.getElementById("eject3");

let eject4 = document.getElementById("eject4");

if (

getComputedStyle(eject1).getPropertyValue("display") == "none" &&

getComputedStyle(eject2).getPropertyValue("display") == "none" &&

getComputedStyle(eject3).getPropertyValue("display") == "none" &&

getComputedStyle(eject4).getPropertyValue("display") == "none"

) {

getComputedStyle(eject1).getPropertyValue("display") = "block";

getComputedStyle(eject2).getPropertyValue("display") = "block";

getComputedStyle(eject3).getPropertyValue("display") = "block";

getComputedStyle(eject4).getPropertyValue("display") = "block";

} else {

getComputedStyle(eject1).getPropertyValue("display") = "none";

getComputedStyle(eject2).getPropertyValue("display") = "none";

getComputedStyle(eject3).getPropertyValue("display") = "none";

getComputedStyle(eject4).getPropertyValue("display") = "none";

}

},


回答:

不建议去手动更改DOM

示例代码:在线预览

<template>

<div class="main_top">

<button class="top_img1" @click="appear()">点击</button>

<div v-show="showEject" id="eject1"></div>

<div v-show="showEject" id="eject2"></div>

<div v-show="showEject" id="eject3"></div>

<div v-show="showEject" id="eject4"></div>

</div>

</template>

<script>

export default {

data() {

return {

showEject: true,

};

},

methods: {

appear() {

this.showEject = !this.showEject;

},

},

};

</script>

<style>

#eject1,

#eject2,

#eject3,

#eject4 {

width: 100px;

height: 80px;

margin: 20px;

background-color: #000;

}

</style>

以上是 点击第一次不出现div,点击第二次才出现? 的全部内容, 来源链接: utcz.com/p/937376.html

回到顶部