手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JS中批量给元素绑定事件过程中的相关问题使用闭包解决
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
摘要:在JS中,你写一个for循环的时候,内部的循环变量I其实是会保存在它运行的函数或类内的,所以你会发现你给元素批量绑定事件的时候,出现i=最后...

在JS中,你写一个for循环的时候,内部的循环变量I其实是会保存在它运行的函数或类内的,所以你会发现你给元素批量绑定事件的时候,出现i=最后一个循环变量的值,这就很坑爹啊,解决的方案有2钟,

思路就是:把这个循环变量保存起来,不要让它的作用域在整个函数,而是在循环体内

1.使用闭包(如果你不懂闭包,请打开百度:www.baidu.com)

2.使用with关键字,with语法是with( obj ) { //使得可以在此直接访问obj的属性,而不用加obj.XXX }

代码示例:

复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

<title>Untitled Page</title>

<script type="text/javascript" src="jquery-1.7.2.js" ></script>

<script type="text/javascript" language="javascript">

$(document).ready(function (){

function Ev(i){

this.index = i;

this.click = function (){

alert(this.index );

}

}

for(var k=1; k<4; k++){

//闭包函数1

// (function(x){

// $("#div" + x).click(function(){

// f(x);

// });

// }(k));

//使用with关键字

with ({i: k}){

$("#div" + i).click(function(){

f(i);

});

}

}

var f = function (m){

alert(m);

}

});

</script>

</head>

<body>

<div id="div1">1

</div>

<div id="div2">2

</div>

<div id="div3">3

</div>

</body>

</html>

【JS中批量给元素绑定事件过程中的相关问题使用闭包解决】相关文章:

JavaScript中的Math.LOG2E属性使用详解

JavaScript中的acos()方法使用详解

JavaSacript中charCodeAt()方法的使用详解

JQuery中DOM事件绑定用法详解

JavaScript中的Math.E属性使用详解

JavaScript中reduce()方法的使用详解

jQuery获取页面元素绝对与相对位置的方法

JavaScript中的条件判断语句使用详解

JS对字符串编码的几种方式使用

JavaScript中的bold()方法使用详解

精品推荐
分类导航