当前位置: 首页 > 图文教程 > 网络编程 > Javascript > Javascript循环绑定事件的示例代码

Javascript
Prototype使用指南之form.js
Prototype1.5 rc2版指南最后一篇之Position
javascript 对象的定义方法
JS多级连动菜单
javascript编程起步(第一课)
javascript编程起步(第二课)
java script编程起步(第三课)
jquery简单体验
javascript编程起步(第四课)
javascript编程起步(第五课)
javascript编程起步(第六课)
javascript编程起步(第七课)
javascript object oriented 面向对象编程初步
js宝典学习笔记(上)
JS宝典学习笔记(下)
javascript基础的动画教程,直观易懂
javascript 的面向对象特性参考
JScript|Event]面向事件驱动的编程(二)--实例讲解:将span模拟成超连接
JScript面向事件驱动的编程
一份老外写的XMLHttpRequest代码多浏览器支持兼容性

Javascript循环绑定事件的示例代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 237 ::
收藏到网摘: n/a

我们先看一个关于Javascript利用循环绑定事件的例子 例如:一个不确定长度的列表,在鼠标经过某一条的时候改变背景。
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

这个例子循环为一组对象绑定事件处理函数。
但是,如果我们在这个基础上增加一些需求。比如在点击某一条记录的时候弹出这是第几条记录?
肯能你会理所当然的这么写:
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

测试一下你会发现alert出来的都是:这是第6记录
其实这里for循环已将整个列表循环了一遍,并执行了i++,所以这里i变成了6,
有什么好的办法解决这个问题吗?
那就是闭包了,个人认为闭包是js中最难捉摸的地方之一,
看看什么是闭包:
闭包时是指内层的函数可以引用存在与包围他的函数内的变量,即使外层的函数的执行已经终止。
这个例子中我们可以这样做:
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

PS:闭包很难,很复杂!