javascript - 如何为每个元素添加唯一的事件侦听器
问题描述
我正在做一个 laravel 项目。@foreach
我必须使用刀片指令迭代资源,如下所示:
@foreach($users as $user)
<p @click="toggleClick">{{ $user->name }}</p>
<p v-if="clicked">Lorem ipsum</p>
@endforeach
您可能已经注意到这种方法的问题。问题是如果有五个用户,toggleClick
听众将被附加到每个段落。因此,如果我单击“一个”用户,隐藏的 Lorem ipsum 段落将立即显示为“所有”段落。这是一个例子:
约翰·多伊
Lorem ipsum
简·多伊(点击)
Lorem ipsum
吉米·多伊
Lorem ipsum
但我想要的是这样的:
约翰·多伊
简·多伊(点击)
Lorem ipsum
吉米·多伊
我怎样才能做到这一点?
解决方案
如果您希望每个段落独立运行,那么您必须有独立的听众。
例如,您可以在循环中添加索引以及段落编号toggleClick(event, i)
在哪里。
在您的 HTML 中,只需使用布尔字段显示可见段落;)i
推荐阅读
- python - 给定一组约束的分配问题
- google-chrome - 如何在 Manifest_version 3 Chrome 扩展中将内容复制到剪贴板?
- android - 如何在 ant media 上找到 .m3U8 文件?
- javascript - 带有 Storybook 和 Tailwind 的 Svelte 组件库 - 未应用 css
- f# - 无法在 F# 中获取作为带有代码引号的参数传递的函数的名称
- python - requests.get(X).json(): JSONDecodeError: 期望值: line 1 column 1 (char 0)
- bash - 为什么 cron 不能成功运行我的 bash 脚本
- ruby-on-rails - Rails 迁移返回索引太长
- sql - 引用表 PostgreSQL 的给定键没有唯一约束匹配
- c++ - 构建 C++ 本机库时安装 ZLIB 时出错 - google usd_from_gltf