javascript - 如何根据在 Vue js 中的另一个 div 中单击的内容来显示和隐藏 div?
问题描述
我有 2 个 div,一个显示产品名称(产品 1、产品 2...等),另一个显示产品文章(产品 1:第 1 条,产品 2:第 1 条,产品 2:第 2 条...)。我想要一个功能,我点击产品 1,然后产品 1 的文章应该出现。当我点击另一个产品时,假设产品 2,那么产品 1 的文章应该被隐藏,产品 2 的文章会被显示。
像这样:
案例 1:点击产品 1 时
产品一
产品 1 的文章 <--- 加载页面时显示 div。
- 产品一:第一条
- 产品一:第二条
产品 2
产品 3
产品 4
案例 2:点击产品 2 时
产品 1 <--- 隐藏 div
产品 2
产品 2 的文章 <--- 显示 div
- 产品二:第一条
- 产品二:第二条
产品 3
产品 4
我曾尝试使用 Boostrap Vue 的手风琴,但这不符合我在其他要求中的需求。这是我到目前为止所拥有的:
<div class="container">
<div
v-for="(product, productIndex) in productsandarticles"
:key="productIndex"
>
<div class="articlelistingdesktop">
<div class="productlisting"> <--- Product Names Div
{{ product[0].productNames['en'] }}
</div>
<div class="articlelisting"> <--- Product Articles Div
<h4>{{ product[0].productNames['en'] }} 's articles</h4>
<div
v-for="(productInner, productInnerIndex) in product"
:key="productInnerIndex"
>
<nuxt-link :to="'/' + productInner.title_slug"> . <--- Link to the articles
{{ productInnerIndex + 1 }}. {{ productInner.title['en'] }}
</nuxt-link>
</div>
</div>
</div>
</div>
</div>
我所有的数据都来自一个 JSON 文件,目前,我的代码显示了所有产品名称及其各自的文章。我也试图避免在我的项目中使用 jquery。如果有人可以提供帮助,我将不胜感激。
谢谢!
解决方案
只需使用反应属性来跟踪“活跃”产品的索引......
在您的组件中:
data() {
return {
activeProductIndex: null
}
}
<div class="container">
<div
v-for="(product, productIndex) in productsandarticles"
:key="productIndex"
>
<div class="articlelistingdesktop">
<div class="productlisting" @click="activeProductIndex = productIndex">
{{ product[0].productNames['en'] }}
</div>
<div class="articlelisting" v-if="activeProductIndex === productIndex">
<h4>{{ product[0].productNames['en'] }} 's articles</h4>
<div
v-for="(productInner, productInnerIndex) in product"
:key="productInnerIndex"
>
<nuxt-link :to="'/' + productInner.title_slug"> . <--- Link to the articles
{{ productInnerIndex + 1 }}. {{ productInner.title['en'] }}
</nuxt-link>
</div>
</div>
</div>
</div>
</div>
模板更改说明:
<div class="productlisting" @click="activeProductIndex = productIndex">
- 使用点击事件将当前产品索引分配给activeProductIndex
变量
<div class="articlelisting" v-if="activeProductIndex === productIndex">
- 仅在产品“活跃”时呈现文章列表
推荐阅读
- python-3.x - 如何在烧瓶应用程序中使用 cgitb 增强回溯日志记录?
- sleep - 如何在超低功耗模式下使用 MPU 6050
- python - 熊猫直方图
- python - 改组 pandas 数据帧行,同时避免连续的条件值
- xaringan - 我可以使用 css 为 xaringan 模板的每张幻灯片添加徽标吗?
- python - 在python3中表示数字
- python - 使用 matplotlib 和 subplot 绘制多个条形图
- eclipse - Eclipse PDT 在注释块中标记“错误”
- java - UI 在异步后台任务中缓慢执行
- mysql - 私有子网和公共子网(均为 EC2)的安全组