2019独角兽企业重金招聘Python工程师标准>>>

<script type="text/javascript">  
function buttonInit(){  
    for(var i=1;i<4;i++){  
        var b=document.getElementById("button"+i);  
        b.addEventListener("click",function(){ alert("Button"+i);},false);  
    }  
}  
window.οnlοad=buttonInit;  
</script>  
</head>  
<body>  
<button id="button1">Button1</button>  
<button id="button2">Button2</button>  
<button id="button3">Button3</button>  
</body>  
</html> 全部弹出button4
当注册事件结束后,i的值是4,当点击按钮时,事件函数function(){alert("button"+i)}这个匿名函数中没有i,
所有到buttonInit函数中找,此时的i为4,所有弹出button4  (但是此时确实是点击不同的按钮,只是都显示i=4)修改如下:
<script>
function buttonInit(){  
    for(var i=1;i<4;i++){  
   (function (arg) {
        var b=document.getElementById("button"+i);  
         b.οnclick=function(){alert("Button"+arg);};  
  })(i);
    }  
}  
window.οnlοad=buttonInit; 
</script>  js改成如上可以弹出button1 ,button2 , button3

另一个例子

for(var i=0;i<3;i++){

setTimeOut(function(){

console.log(i)

},500)

};

执行结果:3,3,3

所以上述函数应该写成:

for(var i=0;i<3;i++){

(function(i){

setTimeOut(function(){

console.log(i)

},500);

})(i);

}

另一种修改方法:把var改成let即可

for(let i=0;i<3;i++){

setTimeOut(function(){

console.log(i)

},500)

};

这种情况创建了太多的定时器,如果i值非常大,会非常消耗资源,大大降低执行性能,优化如下,始终只有一个定时器

let i = 0;
    let time = setInterval(output, 1000)
    function output() {
        if (i < 10) {
            console.log(i)
            console.log(time)
            i++
        } else {
            clearInterval(time)
        }
    }

如果自定义参数

let i = 0;
    let time = setInterval(function() {output(8)}, 1000)
    function output(num){
          if (i < num) {
            console.log(i)
           
            i++
        } else {
            clearInterval(time)
        }
    }
    </script>

转载于:https://my.oschina.net/u/2612473/blog/737793

for 循环中实现多个点击事件相关推荐

  1. Android在WebView中给图片设置点击事件

    好久没有更新博客了,今天来个小知识点.我们知道在WebView中加载的是Html也面,在开发中都是Web前端人员写好以后给个链接我们去用webView进行loadUrl.但是有时突然产品想让你把加载回 ...

  2. iostext添加点击事件_iOS开发小技巧 - label中的文字添加点击事件

    Label中的文字添加点击事件 以前老师讲过类似的功能,自己懒得回头看了,找了很多第三方的,感觉这个小巧便利,作者只是扩展了分类,实现起来代码也少.先来个效果图 自己的项目,直接上代码 - (void ...

  3. Android中的事件处理之点击事件

    在 Android 的图形界面(UI)开发中,有两个非常重要的内容∶一个是控件的布局,另个就是控件的事件处理.Android中的常用事件有点击事件.长按事件.触摸事件.焦点事件.按键事件-下拉列表的选 ...

  4. 在Vue组件中获取全局的点击事件

    使用场景: 在Vue组件中点击某元素之外的地方移除该元素 需求: 如上图所示,"用户列表"页面有三个Vue组件组成,分别是"菜单组件","导航组件&q ...

  5. 六十二、Js中的冒泡和捕获点击事件和Vue组件绑定原生事件

    2020/10/18 . 周日.今天又是奋斗的一天. @Author:Runsen @Date:2020/10/18 写在前面:我是「Runsen」,热爱技术.热爱开源.热爱编程.技术是开源的.知识是 ...

  6. 谷歌地图中给infowindow添加点击事件

    项目中想实现点击地图中marker上面的图标,即点击infowindow之后跳转到另一个界面,发现不可以像监听marker点击事件一样直接给infowindow添加点击事件.解决方法为将content ...

  7. CefSharp向浏览器中指定DOM发送点击事件

    引用 CefSharp的SendMouseClickEvent,通过此函数发送鼠标点击事件. 操作方法 先借助jQuery获取指定DOM的偏移,然后发送SendMouseClickEvent完成模拟点 ...

  8. vue中echarts纵轴添加点击事件

    直接上代码 initChart () {this.ganttChart = echarts.init(document.getElementById('gantt-chart'))const _sel ...

  9. vue中触发按钮的点击事件

    主动触发点击事件 由vue代码触发点击事件,实现的效果是:点击按钮,触发 输入框点击事件,从而实现选择文件. 示例如下: <template><input type="fi ...

  10. html中取消li的点击事件,jquery设置html li点击click事件为什么无法赋值到表单input value中呢?...

    小弟最近在做一个项目.用到了闭包的问题,是这样的,页面中有一堆li(动态加载的),点击某一个的时候获取对应的index,然后把index赋值到input标签中的value,但是怎么都赋值不上.不知道咋 ...

最新文章

  1. CPU主频越高越好吗
  2. 某程序员吐槽:组里新来一位美女同事,男同事们冲上去大献殷勤,过几天又一哄而散!...
  3. python——图像处理3(均值偏移、改变亮度、图像修复、图像融合)
  4. java 基于虹软离线人脸识别SDK 2.0 最新版
  5. iOS开发JSON字符串和字典互转
  6. Servlet学习笔记 Servlet原理
  7. 晶闸管有几个pn结_晶闸管的电路符号和图片识别
  8. 证书访问_3+证书|高考注册页面可访问,具体流程看这里!
  9. [CF475E]Strongly Connected City 2
  10. php如何读出xml的节点内容 两个例子
  11. 作为一名通信老司机,我是如何看待翼龙通信无人机救灾的?
  12. ExtJs2.0学习系列(6)--Ext.FormPanel之第三式(ComboBox篇)
  13. Oracle的dbf文件迁移
  14. 嵌入式Linux系统编程学习之十七计时器与信号
  15. 取消vs2013在代码中的Reference数量功能
  16. LeetCode 98 验证二叉搜索树
  17. mysql常用的备份命令有哪些_Mysql常用命令及sql代码整理 非常实用值得收藏 - 文中之舞...
  18. vs哪个版本比较好用_哪个跨境电商erp比较好用,跨境电商erp哪个好一点
  19. RFID定位技术在仓库管理中的应用--新导智能
  20. 电路板常用连接器(接插件)介绍与选型建议(板对板连接器,板对线连接器,线对线连接器等)

热门文章

  1. SystemFile
  2. loadrunner中文件的操作
  3. SVM(三)—Kernels(核函数)
  4. 探索 SharePoint 2013 Search功能
  5. 地区选择控件的制作(仿中华英才网地区选择控件)
  6. 统计数组中出现次数最多的元素并输出
  7. 教你如何Mac上手动配置静态IP上网
  8. 漫威蜘蛛侠Mac动态壁纸
  9. Ubuntu 20.04 安装多个版本 php 并应用到 nginx
  10. 《Java并发编程实战》 第二章:线程安全性