下面是我的完整代码,这里我试图隐藏默认的“v-显示”。它应该在默认隐藏状态,当用户点击按钮,然后它应该显示。我已经使用“显示:无”css属性隐藏默认的div,但它不工作。我们如何解决这个问题?
<script src="https://unpkg.com/vue@2.5.3/dist/vue.js"></script>
<div id="app">
<button @click='toggle = !toggle'> click here </button>
<div id="hide" v-show='toggle'>showing</div>
</div>
<script>
new Vue({
el: '#app',
data () {
return {
toggle: true
}
},
})
</script>
中文(简体)
#hide {
display:none;
}
2条答案
按热度按时间ha5z0ras1#
你在组件定义中定义了
toggle: true
,在模板中使用了v-show='toggle'
。但是你的css风格总是把display:none;
添加到#hide
元素中。v-show
是做什么的当
v-show
中的条件求值为false
时,它会将display: none
内联样式添加到元素中,如果它的求值结果为true
,它会删除display: none
。更简单地说,它只是从元素样式中添加和删除display: none
。它不会添加任何display: block
或其他东西来使元素可见。您的元素总是隐藏在您为
#hide
元素添加的CSS代码中。因此,即使v-show
的计算结果为true,它也只是删除了添加的display: none
内联样式。由于为#hide
添加的样式,您的css代码将始终保留display: none
。这意味着您的组件将始终隐藏。修复
删除css样式,仅依赖于
v-show='toggle'
工作小提琴
b4wnujal2#
如果你想切换元素,这是可行的。