Javascript循环绑定事件的示例代码_javascript技巧
程序员文章站
2022-05-04 17:18:36
...
例如:一个不确定长度的列表,在鼠标经过某一条的时候改变背景。
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
这个例子循环为一组对象绑定事件处理函数。
但是,如果我们在这个基础上增加一些需求。比如在点击某一条记录的时候弹出这是第几条记录?
肯能你会理所当然的这么写:
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
测试一下你会发现alert出来的都是:这是第6记录
其实这里for循环已将整个列表循环了一遍,并执行了i++,所以这里i变成了6,
有什么好的办法解决这个问题吗?
那就是闭包了,个人认为闭包是js中最难捉摸的地方之一,
看看什么是闭包:
闭包时是指内层的函数可以引用存在与包围他的函数内的变量,即使外层的函数的执行已经终止。
这个例子中我们可以这样做:
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
PS:闭包很难,很复杂!
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
这个例子循环为一组对象绑定事件处理函数。
但是,如果我们在这个基础上增加一些需求。比如在点击某一条记录的时候弹出这是第几条记录?
肯能你会理所当然的这么写:
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
测试一下你会发现alert出来的都是:这是第6记录
其实这里for循环已将整个列表循环了一遍,并执行了i++,所以这里i变成了6,
有什么好的办法解决这个问题吗?
那就是闭包了,个人认为闭包是js中最难捉摸的地方之一,
看看什么是闭包:
闭包时是指内层的函数可以引用存在与包围他的函数内的变量,即使外层的函数的执行已经终止。
这个例子中我们可以这样做:
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
PS:闭包很难,很复杂!
上一篇: php验证码的基本原理
下一篇: 高并发编程-重排序
推荐阅读
-
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
-
Javascript循环删除数组中元素的几种方法示例
-
javascript事件的绑定基础实例讲解(34)
-
JavaScript实现无限级递归树的示例代码
-
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
-
JavaScript实现事件的中断传播和行为阻止方法示例
-
JavaScript触发HTML元素事件的代码分析
-
JavaScript开发中利用jQuery将多条数据插入模态框的示例代码
-
JavaScript的闭包特性如何给循环中的对象添加事件(一)
-
Javascript中绑定click事件的四种方式介绍