jquery循环绑定事件
<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>
jquery循环绑定事件的更多相关文章
- JavaScript利用闭包循环绑定事件
我们经常在做前端面试题的时候,会遇到循环绑定事件后,输出打印结果,很多人总是搞不清楚,今天借此机会跟大家梳理一下闭包相关作用. 1.首先我们举一个简单的例子. html部分: <a href=& ...
- jquery on 绑定事件
jquery on 绑定事件 1. 多个选择器绑定一个事件 2. 多个事件绑定一个函数 3. 一个选择器绑定多个事件,有两种写法: 或者 on只绑定一次事件,绑定父元素,防止初始化时数据未加载,绑定出 ...
- jQuery中绑定事件bind() on() live() one()的异同
jQuery中绑定事件的四种方法,他们可以同时绑定一个或多个事件 bind()-------------------------版本号小于3.0(在Jquery3.0中已经移除,相应unbind()也 ...
- jQuery中绑定事件的几种方法
以click事件为例,jQuery中绑定事件有三种方法: (1)target.click(function(){}); (2)target.bind("click",functi ...
- JQuery中绑定事件(bind())和移除事件(unbind())
有时候事件执行完了,想取消事件的效果可以通过一定的办法来处理.比如bind()(绑定事件)和unbind()(移除通过bind()方法添加的事件)方法来移除事件的效果. 比如下面的一个案例: 复制代码 ...
- jquery on绑定事件叠加解决方法
jquery on绑定事件叠加解决方法 代码如下 <pre> $('.maoqiu').each(function () { var is_bind = $(this).attr('is_ ...
- dom元素循环绑定事件的技巧
以前总觉得自己写的代码不太规范,尤其是写原生的时候.举个例子: 要为页面上所有".a"的元素绑定事件,当然了用jquery很方便:$('.a').bind("click& ...
- jQuery .on() 绑定事件无效
前几天,要在移动端实现一系列的功能,用 HTML + JS. 按照以往的思路,事件绑定就直接 $(document).on "click", "selector" ...
- jquery 获取绑定事件
在1.8.0版本之前,我们要想获取某个DOM绑定的事件处理程序可以这样: 1 $.data(domObj,'events');//或者$('selector').data('events') 而从1. ...
随机推荐
- JS 中的foreach和For in比较
使用方式举例如下: <script type="text/javascript"> var jsonranklist=[{"name":" ...
- Mac Android签名生成keystore
1.打开终端 2.去到java安装的根目录,即输入 cd /Library/Java/Home/bin/ 3.当前用户没有最高权限,在Library文件夹下不能生成任何文件,可以到当前用户目录下生成文 ...
- 将long型转换为多少MB的方法
Formatter.formatFileSize( this, processInfo.getMemsize()) public class DensityUtil { /** * 根据手机的分辨率从 ...
- http://blog.csdn.net/congcong68/article/details/39252897
http://blog.csdn.net/congcong68/article/details/39252897
- POJ1845 Sumdiv(求所有因数和+矩阵快速幂)
题目问$A^B$的所有因数和. 根据唯一分解定理将A进行因式分解可得:A = p1^a1 * p2^a2 * p3^a3 * pn^an.A^B=p1^(a1*B)*p2^(a2*B)*...*pn^ ...
- 游戏 标签gui.label
using UnityEngine; using System.Collections; public class Gui : MonoBehaviour { public string str; p ...
- USACO 5.4 Character Recognition(DP)
非常恶心的一题,卡了三个月,没什么动力做了,代码直接抄的别人的... 这题主要思路就是预处理出几个数组,再预处理出几个数组,最后DP,输出一下路径... 写起来挺非常麻烦,代码不贴了,丢人... 把U ...
- BZOJ3772: 精神污染
Description 兵库县位于日本列岛的中央位置,北临日本海,南面濑户内海直通太平洋,中央部位是森林和山地,与拥有关西机场的大阪府比邻而居,是关西地区面积最大的县,是集经济和文化于一体的一大地区, ...
- Shell之sed用法 转滴
通过例子学习sed的用法 1,sed介绍 sed可删除(delete).改变(change).添加(append).插入(insert).合.交换文件中的资料行,或读入其它档的资料到 文> ...
- jquery限制div字符长度,超出部分已“…”显示
$(".content").each(function(){ if($(this).text().length>100){ $(this).text($(this).text ...