For 循环中的 onClick 事件

2024-01-01

我尝试创建一个循环for,并通过 onclick 事件递增,但它不起作用。

var gameCase = ['', '', '', '', '', '', '', '', ''],  // 9
    itemLists = $('game').getElementsByTagName('li'); // 9 items

for( var i = 0; i < itemLists.length; i++ ) {
     // i already equals 9
     itemLists[i].onclick = function() {
          // do something
    }
 }

但在这种情况下,for在我能够单击列表中的元素之前循环已完成。

此外,我想获取我单击的项目列表并将其保存在数组中。我试过gameCase[this](在 onclick 函数中),但我不知道这是否是好方法。


John Resig 在“JavaScript Ninja 的秘密”(http://ejohn.org/apps/learn/#59 http://ejohn.org/apps/learn/#59 )

您需要创建一个临时范围来保留 i 的值

for ( var i = 0; i < itemLists.length; i++ ) (function(i){ 
  itemLists[i].onclick = function() {
      // do something
  }
})(i);

Edit:

var gameCase = ['', '', '', '', '', '', '', '', ''], // 9
$listParent = $('game').find('ul'), // li's parent
itemLists = $('game').getElementsByTagName('li'); // 9 items

var listHandler = (function() {
  var i = 0;

  return function() {
    // $(this) will in here refer to the clicked li
    i++ // increment i

    if ( i === 9 ) {
      $listParent.off('click', 'li', listHandler); //remove eventhandler when i reaches 9
    }
  }
}());

$listParent.on('click', 'li', listHandler); // attach eventhandler to ul element

这应该可以满足您的要求,因为我正在工作,所以现在无法测试它。

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

For 循环中的 onClick 事件 的相关文章

  • 如何在后台加载图像?

    问题 我正在创建一个专辑 所以每次按 时间 下一个 按钮我正在加载新图像 我想要实现的是 只有在新图像从服务器完全下载后 我才想从旧图像切换到新图像 实际上我不想在加载时显示部分图像 有什么解决办法吗 PS 类似的问题 https stac
  • ExtJs4 Json TreeStore?

    我正在将 ExtJs3 应用程序迁移到 ExtJs4 在 ExtJs3 中 我有一个树网格 它有一个加载器来加载树数据 如下所示 loader new Ext tree TreeLoader dataUrl Department Depar
  • Android 上的 setTimeOut() 相当于什么?

    我需要等效的代码setTimeOut call function milliseconds 对于安卓 setTimeOut call function milliseconds 您可能想查看定时任务 http developer andro
  • React 和 Leaflet 结合的好方法

    我正在开发一个将 React 和 Leaflet 结合起来的项目 但我必须说我在语义方面遇到了一些困难 由于大部分内容都是由 Leaflet 直接管理的 我不知道将 Leaflet 映射实例添加为 React 组件中的状态是否有意义 当涉及
  • 找不到 firebase-messaging.js laravel

    大家好 我正在使用 firebase 制作一个用于推送通知的应用程序 这是我在 firebase 中的第一个项目 我遇到的问题是当我运行项目并单击它给我的登录按钮时的连接 已授予通知权限 但在此之后它返回一个错误 如下所示 获取脚本时收到错
  • Mocha / Chai Expect.to.throw 未捕获抛出的错误

    我在获取 Chai 时遇到问题expect to throw测试我的 node js 应用程序 测试在抛出的错误上不断失败 但是如果我将测试用例包装在 try 和 catch 中 并对捕获的错误进行断言 它就会起作用 Does expect
  • 元素上的 jQuery touchSwipe 事件阻止滚动

    我有一些清单div元素垂直排序 使用jQuery TouchSwipe 插件 https github com mattbryson TouchSwipe Jquery Plugin添加了滑动事件来捕获左右滑动 想法是通过向左或向右滑动来从
  • 如果只有一个元素发生变化,为什么 AngularJs 会更新数组/哈希映射的所有元素?

    我有一个简单的哈希图和一个以文本形式显示状态的简单方法 但是当我仅更新 1 个用户状态时 所有这些状态都会更新 为所有用户调用函数 有没有一种方法可以只更新一个元素而不是全部 示例代码在这里 只需看看当您单击 更改状态 按钮时控制台中会发生
  • Cordova - 已弃用尝试访问非导航器对象上的属性“userAgent”

    我正在尝试让我的 Cordova iPhone 应用程序在 iOS 8 1 中运行 在 7 中工作正常 从 8 开始出现以下错误 Deprecated attempt to access property userAgent on a no
  • Node.JS Web 服务器中的安全性

    所以 我正在学习 Node JS 到目前为止我很喜欢它 我已经有几个项目在工作了 我想我可以在其中使用nodejs 不过 我担心安全问题 如果我使用 Node JS http 模块编写自定义 Web 服务器 我是否可能非常容易受到攻击 Ap
  • 如何从 dataurl 在服务器上创建图像文件

    我有一个 dataurl 格式的图像 例如 data image jpeg base64 9j 4AAQSkZJRgABAQAAAQABAAD 2wBDAAMCAgMCAgMDAwMEAwME iiigAooooAKKKKACiiigAoo
  • 如何在 ES6 类中使用静态变量?

    我正在尝试在 es6 中使用静态变量 我想声明一个静态变量count in Animal类并增加它 但是 我无法通过声明静态变量static count 0 所以我尝试了另一种方法 class Animal constructor this
  • Google Apps 脚本:如何水平对齐 inlineImage

    我有以下代码 它是一个更大程序的一部分 我正在尝试将图像从我的 Google 驱动器插入到 Google 文档中 并调整其大小并居中 到目前为止 我能够让程序插入图像并调整其大小 但我不知道如何使 inlineImage 居中 我是使用谷歌
  • 如何使用 jQuery AJAX 和 JSON 通过 Bootbox 确认表单提交

    我正在使用一个网络应用程序工作Spring MVC 我试图在提交表单之前显示一个确认对话框Bootbox 但我收到 500 内部服务器错误 这是我的表格
  • Web 扩展中共享 vuex 状态(死对象问题)

    我正在尝试在网络扩展中使用共享的 vue js 状态 状态存储在后台脚本的 DOM 中并呈现在弹出页面中 第一次尝试 我的第一次尝试是使用一个没有 vuex 的简单商店 背景 js var store count 0 popup js br
  • 如何检查 URL 末尾是否有特定字符串

    我需要根据 URL 末尾的内容让覆盖层向下滑动 如果 URL 末尾有 faq 覆盖层下降 如何在 jQuery JavaScript 中做到这一点 如果您的网址看起来像这样http yourdomain com faq 你可以这样做 var
  • 为什么 `BehaviorSubject` 不发出最后一个值

    The 关于BehaviorSubject的文档 http reactivex io documentation subject html声明它应该返回最后发出的值 无论我何时订阅 但它不会为我返回它 const ofObservable
  • 同步通用分析

    新的Universal Analytics重新引入了同步事件跟踪 https developers google com analytics devguides collection analyticsjs method reference
  • 是否可以阻止在每个 HTTP 请求中发送 cookie?

    我最近发现 这里 每个网络请求都会发送浏览器cookie吗 https stackoverflow com questions 1336126 does every web request send the browser cookies
  • 获取不正确的日期,将时间戳转换为新日期

    我正在尝试将时间戳转换为日期 但得到的日期不正确 我正在开发一个使用 Angular 和 Typescript 的项目 我有这样的时间戳 1451642400 2016年1月1日 和1454320800 2016年2月1日 如果我编码 da

随机推荐

  • 如何在 Scala 中向枚举添加方法?

    在 Java 中你可以 public enum Enum ONE public String method return 1 TWO public String method return 2 THREE public String met
  • REST 如何在 URI 中传递空路径参数?

    我正在开发一个安静的网络应用程序 在此我采用的参数是 userid 和 orderid The userid can be null URI 是 Path api user userid order orderid 我的方法是 void a
  • 最好的 GWT 小部件库? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何阻止 Meteor/Cordova 应用程序连接到 10.0.2.2? (为什么应用程序会连接到那里?)

    我有一个 Meteor 应用程序 它在本地服务器上运行以进行开发 http 10 0 2 10 3000 http 10 0 2 10 3000 The ROOT URL设置正确 所以 meteor runtime config ROOT
  • 检查列表中是否包含 Ansible 中的项目

    我正在尝试检查提供的版本是否是有效的受支持版本 我已在变量中设置了可接受版本的列表 如果提供的版本不在列表中 我希望任务失败 但是 我不确定如何做到这一点 role vars main yml acceptable versions 2 3
  • 比较两个分数(< 和朋友)

    我有两个我喜欢比较的分数 它们的存储方式如下 struct fraction int64 t numerator int64 t denominator 目前 我这样比较它们 bool fraction le struct fraction
  • Pyspark dataframes:根据另一列的值提取一列

    我有一个包含以下列和相应值的数据框 请原谅我的格式 但不知道如何将其放入表格格式 Src ip dst ip V1 V2 V3 top A B xx yy zz V1 现在我想添加一列 比如说top value它获取与 V1 中的字符串对应
  • 具有 http PUT 方法约束的属性路由

    我正在使用 MVC5 的新属性路由并已获取 httpGET and POST方法约束通过添加来工作 HttpGet and HttpPost 归因于我的行动方法 但是当我添加 HttpPut 我刚刚收到 404 错误页面 有谁知道我需要做什
  • VB6 和 VBA 的替代 IDE [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我已经被 Visual Studio 2008 宠坏了Eclipse https en wikipedi
  • 如何找到覆盖另一个矩形的矩形面积

    我有一个点 xmin ymin xmax ymax 列表 如黑点所示 How to find which are the rectangles that are being covered by another rectangle and
  • 如何在flutter中获取firestore文档的documentid?

    我已尝试以下操作 但它返回一个随机字符串 该字符串不存在于 firestore 中 我确实设法使用查询快照获取父集合的 documentid DocumentReference doc ref Firestore instance coll
  • MSTest 代码覆盖率

    我有一个 Web 服务的测试项目 当我在调试模式下运行测试时 一切正常 但是 当我刚刚运行测试时 对于我尝试获取代码覆盖率的引用程序集 出现以下错误 类初始化方法 WebServiceTest wstest MyClassInitializ
  • NodeJs 文件上传期间停止请求

    我正在编写一个图像上传器 我想将图像的大小限制在 3mb 以下 在服务器端 我可以检查标题中图像的大小 如下所示 使用express app post upload function req res if req headers conte
  • 多线程环境下静态局部变量初始化

    假设有一个函数 可能是成员函数 SomeType foo static SomeType var generateVar return var How var将被初始化 如果foo会同时从多个线程中 第一次 调用吗 是否保证generate
  • ndk-build eclipse 参数:找不到类

    我们正在为 Android 设备开发一个系统 为此 我们使用 FC16 Eclipse SDK NDK 在 Eclipse 中 运行 gt 外部工具 gt 外部收费配置 gt 我们有以下选项卡 Main Location usr java
  • IntelliJ IDEA 在哪里保存本地历史文件?

    我的公司有一项政策 要求在本地开发人员计算机上将源代码保存在加密存储中 IntelliJ IDEA 在哪里保存用于驱动其的代码更改的副本当地历史特色 http www jetbrains com idea features local hi
  • 构建失败 java.lang.OutOfMemoryError: Java 堆空间

    我在构建 build xml 时遇到这个问题 BUILD FAILED java lang OutOfMemoryError Java heap space at java util Arrays copyOf Arrays java 27
  • 捕获模块加载错误并处理它们

    我正在尝试使用 require js 加载一些内容 如果内容不存在 我想捕获错误并通知用户 在萤火虫中我可以看到两个错误 网络错误 404 未找到 然后几秒钟后 var e new Error msg nhttp requirejs org
  • AbstractRoutingDataSource + JPA 不会创建除 defaultTargetDataSource 之外的表

    我使用 JPA 注释 Hibernate 实现 来初始化我的数据库架构 我关注这篇文章动态数据源路由 http blog springsource com 2007 01 23 dynamic datasource routing 实现动态
  • For 循环中的 onClick 事件

    我尝试创建一个循环for 并通过 onclick 事件递增 但它不起作用 var gameCase 9 itemLists game getElementsByTagName li 9 items for var i 0 i lt item