<html>
<head>
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function () {
var array = [0, 1, 2, 3]; // 1.
/*
for(var index in array) {
$("#btn" + index).click(function() {
var item = array[index];
alert(item);
});
}*/
// 始终弹出3, 因为function() {} 并没有被立即解析,直到调用的时候才被解析,这时index已经是3了。 // 2.
/*
for(var index in array) {
$("#btn" + index).click(function(i) {
var item = array[i];
alert(item);
}(index));
}*/
// 立即弹出0, 1, 2, 3,因为使用了function() {}(index)立即被解析,遇到alert,就立即弹出来了。 // 3.
/*for (var index in array) {
$("#btn" + index).click(function (i) {
return function () {
var item = array[i];
alert(item);
};
} (index));
}*/
// 正确执行,点击btn0,弹出0,点击btn1,弹出1...
// 1.因为function(i) {}(index)是被立即解析的,所以i依次送入的是0, 1, 2, 3
// 2.内部没有直接alert,是因为不想立即执行,想点击时再执行,所以返回了一个函数出去。 // 4.
for (var index in array) {
$("#btn" + index).bind("click", {index: index}, clickHandler);
} function clickHandler(event) {
var index = event.data.index;
var item = array[index];
alert(item);
}
// 正确执行,点击btn0,弹出0,点击btn1,弹出1...
// 利用了event.data,因为index在绑定的时候已经被持久化到event.data中了,所以响应的时候我们可以取到。
}); </script> <input type="button" id="btn0" value="btn0" />
<input type="button" id="btn1" value="btn1" />
<input type="button" id="btn2" value="btn2" />
<input type="button" id="btn3" value="btn3" />
</body>
</html>

最新文章

  1. BZOJ2809: [Apio2012]dispatching
  2. EntityFramework Core 学习笔记 —— 包含与排除类型
  3. ECSHOP始终显示全部分类方法
  4. A little problem for pt-pmp
  5. 实现对properties文件的有序读写
  6. IOS--UIPageControl的使用方法详细
  7. Chosen 基本使用
  8. Python之python的一些理解
  9. 带着新人学springboot的应用06(springboot+RabbitMQ 中)
  10. Fragment与Activity的生命周期对比
  11. Server 2008 R2多用户远程桌面连接授权,解决120天过期问题
  12. OpenStack搭建Q版只属于计算节点上的环境准备(step6)
  13. abaqus邓肯张模型umat
  14. Kubernetes-Host网络模式应用
  15. centoos内核升级
  16. python-bs4的使用
  17. http://blog.mn886.net/jqGrid/
  18. HBase学习之路 (十)HBase表的设计原则
  19. Git和Github入门
  20. 定义的函数在main中调用时提示找不到标识符

热门文章

  1. HTML 字符实体 &amp;lt; &amp;gt: &amp;amp;等
  2. Agile 是什么?
  3. ok6410 android driver(10)
  4. Go Walk教程 - 流程控制( switch)
  5. p标签中的span标签文字垂直居中对齐
  6. POJ 1847 Tram (最短路)
  7. BZOJ 1620: [Usaco2008 Nov]Time Management 时间管理
  8. python中Django 使用方法简述
  9. 咸鱼入门到放弃5--Session和Cookie
  10. 两个对象的 hashCode()或equals相同,equals或hashCode不一定相同--《案例演示》
  11. Myeclipse调试模式下自动提示变量值设置
  12. Flask web开发之路十一
  13. [UE4]蓝图替换节点、引用快捷方式
  14. Android 一s个相对完整的自动升级功能实现代码
  15. 大规模Elasticsearch集群管理心得
  16. SQL Server 索引知识-应用,维护
  17. 第十二周作业_PSP总结报告
  18. 报错The VMware Authorization Service is not running
  19. 【mysql】测试方案整理
  20. Histogram