vue.js - 如何使用 Vue 添加/删除带有两个按钮的样式
问题描述
我有两个按钮“+”,“-”加应该显示块,减显示无。我在 vanilla js 中创建了 snipplet,但我不知道如何使它在 Vue.js 中工作。在 Vue 中,我得到了一个带有 + 的组件,它用 - 打开组件。减号应该关闭当前组件,其中 - 位于该组件内部,该组件打开 +。
var p = document.querySelector(".plus");
var m = document.querySelector(".minus");
var div = document.querySelector("div");
p.addEventListener("click", p => {
div.style.display = "block";
});
m.addEventListener("click", m => {
div.style.display = "none";
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
</head>
<body>
<button class="plus">+</button>
<button class="minus">-</button>
<div
style="height: 500px; width: 500px; background-color: blueviolet; display: none"
></div>
<script src="index.js"></script>
</body>
</html>
解决方案
一个开始理解 vueJS 条件渲染的好地方是这里。
// In your index.js file
var app = new Vue({
el: '#app',
data: {
// create a data binding to display or hide the div
displayDiv: false
}
})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
</head>
<body>
<div id="app">
<button class="plus" @click="displayDiv = true">+</button>
<button class="minus" @click="displayDiv = false">-</button>
<!-- I added an addition button to toggle the display -->
<button class="toggle" @click="displayDiv = !displayDiv">Toggle</button>
<div
v-if="displayDiv"
style="height: 500px; width: 500px; background-color: blueviolet;"
></div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src="index.js"></script>
</body>
</html>
或者,您可以使用动态 css动态添加或删除一个 css 类,该类在加载时隐藏 div 并且仅在按下“+”按钮时显示。
推荐阅读
- android - Android如何将TabLayout定位到屏幕底部(针对谷歌的材料设计库TabLayout)
- html - 添加工具提示不在css中显示div
- windows - 从 Windows Server 2012 R2 发送 SSL HTTP 请求
- python - 它确实打印输出,但为什么它没有写入文件?
- python - Python psycopg2删除具有多个where条件的记录
- c# - 使用 Math.Net 的互相关
- uwp - Clipboard.SetContent() 远程过程调用失败
- azure-eventhub - 我正在将 Eventhub 日志捕获到存储帐户中,但它以 avro 编码格式显示。我期待在Json
- html - 服务器不读取 css 和 js 文件
- python - AttributeError:“Legend”对象没有“可拖动”属性