js给多个图片添加事件时的传值问题(很急) --这样试试for(int i;i <10;i++) { var eqpID = i;//eqpID取值 alert(eqpID);//这里可以看到每次循环取到的值是不同的 document.getElementById('图片名称').onclick = function(eqpID) { showNewWin(eqpID) }(eqpID); } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个问题常会遇到!JavaScript中没有块作用域,意思就是,像for循环里的变量,它们的作用域仍然是循环所在的函数主体中或再往上,而不存在每次for会保留一个值,如:<script type="text/javascript">var a = [];var f = function(n){alert(n);};for(var i=0;i<3;i++){ a.push(function(){f(i)});//这个时候i是引用,在f执行时,找到的是循环结束后的i}for(var b=0;b<a.length;b++){ a[b]();//找到的i是上上面循环结束后的i}处理方法 利用闭包:<script type="text/javascript">var a = [];var f = function(n){alert(n);};for(var i=0;i<3;i++){ a.push((function(x){return function(){f(x)};})(i));}for(var b=0;b<a.length;b++){ a[b]();}</script>处理方式2 with与闭包的等同性<script type="text/javascript">var a = [];var f = function(n){alert(n);};for(var i=0;i<3;i++){ with({i:i}){ a.push(function(){f(i)}); }}for(var b=0;b<a.length;b++){ a[b]();}</script> 谢谢啊,找到答案了,跟你的这个方法应该是一样的。(function(eqpID){ document.getElementById(eqpNameEn).onclick = function(){ showNewWin(eqpID)}})(eqpID)有人说是做一个闭包,将eqpID这个参数固定在function里面。以后要多学习。 更多关于JavaScript作用域Scope与Javascript闭包的文章请参见web前端专家dhtml精英俱乐部博客! 感觉你的程序本意就是要把最后的ID赋给它,程序没有错一个图片怎么会有10个onclick事件,你只是在不断的更新,当然最后就是最后的ID了 复杂字符串分割问题 实现不了隐藏ul的效果,不知道问题在哪,大家帮忙 javascript利用正则如何去掉页面中的所有链接 说个原因 或者给点资料看看!!! javascript里,定义了变量i,那么ii的值怎么获取到的? 求兼容IE6 IE7 Firefox 的框架告诉自适应代码,梅花雪那个在IE7下不行 如何把这个flash加到网页右上角 急!!!马上揭贴!!1 急!如何用js实现抽奖的功能??? 怎么让状态栏只显示我所需要显示的内容?不显示链接地址? 图片自动浏览(这是我下的一个)为什么超链接没用? 求助,关于checkbox
<script type="text/javascript">var a = [];var f = function(n){alert(n);};for(var i=0;i<3;i++){
a.push(function(){f(i)});//这个时候i是引用,在f执行时,找到的是循环结束后的i
}for(var b=0;b<a.length;b++){
a[b]();//找到的i是上上面循环结束后的i
}
处理方法 利用闭包:
<script type="text/javascript">var a = [];var f = function(n){alert(n);};for(var i=0;i<3;i++){
a.push((function(x){return function(){f(x)};})(i));
}for(var b=0;b<a.length;b++){
a[b]();
}
</script>
处理方式2 with与闭包的等同性<script type="text/javascript">var a = [];var f = function(n){alert(n);};for(var i=0;i<3;i++){
with({i:i}){
a.push(function(){f(i)});
}
}for(var b=0;b<a.length;b++){
a[b]();
}
</script>
(function(eqpID){
document.getElementById(eqpNameEn).onclick = function(){ showNewWin(eqpID)}})(eqpID)
有人说是做一个闭包,将eqpID这个参数固定在function里面。
以后要多学习。
一个图片怎么会有10个onclick事件,你只是在不断的更新,当然最后就是最后的ID了