提示信息

以上,在v-for中,如何保证点击事件和变量只对当前div生效

付生纪念 已关注

如果你在 v-for 中使用点击事件和变量,并希望只对当前的 div 生效,你可以将 isShowing 变量设置为一个对象,其键是每个 item 的唯一标识符,值是布尔类型表示是否显示。以下是修改后的代码示例:

  1. <template>
  2. <div v-for="(item, index) in items" :key="index">
  3. <ul>
  4. <i class="iconfont icon-jichushezhi" @click="toggleShow(index)"></i>
  5. <n-ellipsis style="max-width: calc(100% - 30px);">{{ item.chartname }}</n-ellipsis>
  6. </ul>
  7. <ul v-show="isShowing[index]" class="dropdown-menu">
  8. <!-- Dropdown menu content -->
  9. </ul>
  10. </div>
  11. </template>
  12. <script setup lang="ts">
  13. import { reactive } from 'vue';
  14. const items = reactive([
  15. // Your items here
  16. ]);
  17. const isShowing = reactive({});
  18. const toggleShow = (index: number) => {
  19. if (isShowing[index]) {
  20. isShowing[index] = !isShowing[index];
  21. } else {
  22. isShowing[index] = true;
  23. }
  24. };
  25. </script>

在这个例子中,我们为每一个 item 创建了一个独立的显示状态,这样就能保证每一个 div 的显示状态是独立的。当点击某个图标时,只会切换该项的显示状态。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
付生纪念 关注 已关注

最近一次登录:2023-12-16 20:04:30   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图