复选框中的 ng-change 被触发多次,因为 ng-click 超过了它

2024-01-18

由于代码比 1000 个单词更好,我创建了一个 plunker 来展示我的问题:http://bit.ly/1uiR2wy http://bit.ly/1uiR2wy

给定特定的 DOM 元素,事情是我有一个带有 ng-change 的输入复选框,我想向包裹它的 li 添加一个 ng-click 以便能够在整个区域中单击。 这个新的 ng-click 使 ng-change 中的方法发生两次。对于发生 3 次的 SPAN 描述 2 来说,情况更糟。

<li class="odd" ng-click="changeToggleModel($event)">
  <span class="overcomeDescription ellipsis-overflow">span description</span>
  <label>      
    <span>SPAN DESCRIPTION 2</span>
    <input type="checkbox" ng-change="toggleSelection($event)" ng-model="isSelected">
  </label>
</li>

我尝试过 stopPropagation ,但似乎并不能解决问题。 有什么想法吗? 如果您检查 plunker 并打开控制台,您将完美地看到问题。

预先感谢大家


您需要停止事件传播label等级。尝试这个:

<label ng-click="$event.stopPropagation()" ...>

Demo: http://plnkr.co/edit/AjD9GlA3zjxABix6hegg?p=preview http://plnkr.co/edit/AjD9GlA3zjxABix6hegg?p=preview

发生这种情况的原因是标签(连接到相应的复选框)有点生成一个点击事件,以便将点击传递给输入。此点击事件会导致所描述的奇怪问题,因为它仍然像正常事件一样冒泡(嗯,它是正常事件),因此被检测到ngClick指令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

复选框中的 ng-change 被触发多次,因为 ng-click 超过了它 的相关文章

随机推荐

  • Python SIGINT 未捕获

    我不明白为什么我的 SIGINT 永远不会被下面的代码捕获 usr bin env python from threading import Thread from time import sleep import signal class
  • 如何让主线程等待所有子线程完成?

    我打算在主线程中触发 2 个线程 并且主线程应该等待所有 2 个子线程完成 这就是我的做法 void routine void arg sleep 3 int main for int i 0 i lt 2 i pthread t tid
  • v3io,文件数量限制

    您知道限制或公式吗 如何计算 v3io 中的文件数量 它可能与集群中数据节点的数量和数据服务器节点上的内存大小有关 我尝试在 v3io 中使用 50 个和 8000 万个文件 它表现良好 但了解预期限制或一般建议很重要 顺便说一句 我没有这
  • 如何使用线程模块暂停和恢复线程?

    我有一个很长的进程 我计划在一个线程中运行 因为否则它会冻结我的 wxpython 应用程序中的 UI 我在用着 threading Thread target myLongProcess start 启动线程并且它可以工作 但我不知道如何
  • common lisp - 获取文件路径

    在 Common Lisp 中 有没有办法获取编译文件的路径 类似于当前目录 该文件不在当前目录文件夹内 这应该是一条评论 但我将提供一些可能对原始发布者有所帮助的代码示例 首先 你需要更清楚自己想做什么 您想要解决的问题是什么 其次 这里
  • 对于 Web 应用程序来说,正确的 MVC 图是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 哪个 MVC 图是正确的 每个都有不同的箭头 图1 图2 source stannard net au http blog stannard n
  • 为什么“map (filter fst)”的类型为“[[(Bool, a)]] -> [[(Bool, a)]]”?

    我试图理解为什么这个函数 map filter fst 有类型 Bool a gt Bool a 如果filter必须接收一个返回Bool类型的函数并且fst只返回元组的第一个元素 那么 filter fst 如何工作 filter a g
  • 将桌面拖放到浏览器 HTML5 Javascript [重复]

    这个问题在这里已经有答案了 正在寻找一些指导 仍然是一个代码学习者 并且在使用 HTML5 DnD File Api 时遇到了一些困难 玩了一些演示 尝试了解它们是如何工作的 我有一点问题 大多数似乎使用内联 css js 方法 我试图在单
  • 将 JPG 转换为 Base64 并返回 [重复]

    这个问题在这里已经有答案了 我可以使用以下 PowerShell 命令将 jpeg 转换为 base64 字符串 Convert ToBase64String Get Content Path Capture jpg Encoding By
  • 将原始查询转换为 Laravel eloquent

    如何将此原始查询转换为 Laravel 雄辩的方式 select c name as country from country c address ad city ci where ad id 1 and city id ad city i
  • 使用 Three.js 加载 .obj 时出现问题

    我正在尝试使用 Three js 加载 obj 文件 但不幸的是 它说错误 无法加载资源 服务器响应状态为 404 未找到 下面是我正在使用的示例链接 查看源代码 http mrdoob github io Three js example
  • Spring @RequestParam Map 在 POST 方法中不起作用

    我从 Spring 文档中获取了以下内容 公共 interfaceRequestParam 指示方法参数应绑定到 Web 请求参数的注释 支持 Servlet 和 Portlet 环境中的带注释的处理程序方法 如果方法参数是 Map 或 M
  • 为什么删除的内存无法重用

    我在带有 MSVC 9 0 的 Windows 7 上使用 C 并且还能够在带有 MSVC 9 0 的 Windows XP SP3 上进行测试和重现 如果我分配 1 GB 0 5 MB 大小的对象 当我删除它们时 一切正常并且行为符合预期
  • 我不“明白”程序如何自我更新。我怎样才能更新我的软件?

    假设我创建了一个 exe 文件 一切都很顺利 太棒了 它有效 假设我在软件上开发了一项新功能 并且我希望它可供已经拥有旧版本的人使用 我怎样才能使软件找到我的新版本 对其进行修补 然后继续其业务 我似乎无法思考这个问题 谢谢 EDIT 对于
  • Knex.js:创建表并插入数据

    鉴于我有一个像这样的 Knex js 脚本 exports up function knex Promise return knex schema createTable persons function table table incre
  • 如何转换spring-boot请求参数

    目前 请求方法接收编码令牌作为参数 该令牌是String但不是 JSON 或类似的东西 然后该令牌被解码为数据类 GetMapping value api xyz public ResponseEntity
  • 如何获取 YouTube 直播的实际视频 URL?

    有没有一种方法可以获取像这样的 YouTube 直播的 HLS URLhttps www youtube com embed WVZpCdHq3Qg https www youtube com embed WVZpCdHq3Qg 我尝试过典
  • NumPy 库导入错误:DLL 加载失败:找不到指定的过程

    我正在 Windows 10 上使用 Visual Studio 2017 学习 python 当我尝试将 NumPy 库导入到我的代码中时 出现此错误 我尝试过卸载并重新安装 寻找libiomp5md dll每条指令ImportError
  • Google Cloud Run 上的 numpy 和 pandas 导入速度缓慢

    我正在开发一个 API 并将其部署在 Google Cloud Run 上 有一个导入 pandas 和 numpy 的预启动 python 脚本 当我对导入进行计时时 在 Cloud Run 上 numpy 大约需要 2 秒 pandas
  • 复选框中的 ng-change 被触发多次,因为 ng-click 超过了它

    由于代码比 1000 个单词更好 我创建了一个 plunker 来展示我的问题 http bit ly 1uiR2wy http bit ly 1uiR2wy 给定特定的 DOM 元素 事情是我有一个带有 ng change 的输入复选框