首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用闭包解决for循环里onclick事件不能捕捉实时i值问题

问题描述 我们都知道,如果我们对于一组元素(相同的标签)同时进行onclick事件处理的时候(在需要获取到索引的时候),一般是写一个for循环,但是onclick是一个异步调用的,所以会带来一个问题,当我们触发这个事件的时候...,我们能获取的i值是for完整执行完后i的值,而不能获取到代码顺序里i的值 首先看一段代码: <!...0;i<btn.length;i++){ btn[i].onclick=function(){ console.log(i);...最后百度了一番才恍然大悟,原来console.log(i)里的i在循环完成的时候被赋值成了5,而每个按钮的onclick都被赋值了同一个function,也就是说每个function里的i指的是同一个i...btn[n].onclick=function(){ console.log(i+'-'+n); //i总是等于5,而n则是点击的数

1K80
您找到你想要的搜索结果了吗?
是的
没有找到

04_使用JS完成功能

[a-zA-Z0-9_-])+/.test(Evalue)){ //给出错误提示信息 alert("邮箱格式不正确!")...onload(页面加载就会执行) 2.书写一个定时器:setInterval(“changeImg()”,3000); 3.编写函数,这个函数专门是用来改变图标的src属性达到定时切换图片的效果...onclick/ondblclick:鼠标单击和双击事件 onkeydown/onkeypress:搜索引擎使用较多 onload:页面加载事件,所有的其它操作(匿名方式)都可以放到这个绑定的函数里面去...onchange:当用户改变内容的时候使用这个事件(二级联动) 7.使用JS完成全选和选不选操作 技术分析 确定事件(鼠标单击事件onclick),事件绑定到编号前面的复选框里面 获取编号前面的复选框的状态...(cities[i][j]); //5.创建option元素节点 var opEle = document.createElement("option"); //6.将城市的文本节点添加到

3.9K60

《从案例中学习JavaScript》之酷炫音乐播放器(二)

开始和暂停按钮之间的切换 /* 获取开始按钮 */ var playDom = utils.dom('#play'); 然后,给它绑定一个点击事件 playDom.onclick = function(...上一节中出现了图标编码格式冲突的问题,因此我把iconfont的引入改成了下面的方式: <i id='pause' class="iconfont icon-zanting" style="display...现在,我们给音乐图标加上转动样式: 在这里我去掉了该元素的定位方法,而继续采用css的方式来居中...rotate.gif 终于转起来了,核心的操作就是给图标添加一个css类而已。 现在,我们希望在点击开始按钮的时候,就转动图标。点击暂停就移除转动的css类。...重写后的按钮事件 //播放按钮 playDom.onclick = function(){ this.style.display = 'none'; pauseDom.style.display

1.4K141

安卓开发_深入学习ViewPager控件

,获得当前View界面在ViewPager中的位置,对应显示导航图标(三个圆点) 效果图: 关键部分: 1、动态添加导航图标,并添加响应事件 1 //实例化导航图标 2...ImageView navImage = new ImageView(getApplicationContext()); 3 //给每个导航图标设置一个标签,标签值为i-1 即第一个页面的标签为...0 第二个页面的标签为1 第三个页面的标签为2 4 navImage.setTag(i-1); 5 //将导航图标的ImageView控件添加到其父容器中...()); 107 108 //对应每个页面(即红黄蓝图片),设置一个导航图标 109 if(i==1)//默认导航在第一个页面...,标签值为i-1 即第一个页面的标签为0 第二个页面的标签为1 第三个页面的标签为2 114 navImage.setTag(i-1); 115 //将导航图标

2K80

事件基础及操作元素

('btn');        //(2) 事件类型 如何触发 什么事件 比如鼠标点击(onclick) 还是鼠标经过 还是键盘按下        //(3) 事件处理程序 通过一个函数赋值的方式...获取事件源        var div = document.querySelector('div');        // 2.绑定事件 注册事件        // div.onclick...获取元素 所有的小li        var lis = document.querySelectorAll('li');        for (var i = 0; i < lis.length...this.className = 'change';            this.className = 'first change';       }     案例:密码框格式提示错误信息...onblur        // 如果输入正确则提示正确的信息颜色为绿色小图标变化        // 如果输入不是6到16位,则提示错误信息颜色为红色 小图标变化        // 因为里面变化样式较多

1.4K20

面向对象版tab 栏切换

,展示对应的内容区域,存储对应的索引 this.lis[i].index = i; this.lis[i].onclick = this.toggleTab; 使用排他,实现只有一个元素的显示...this.remove[i].onclick = this.removeTab; 获取到点击的删除按钮的所在的父元素的所有,删除对应的标题与内容 removeTab(e) {...不需要鼠标触发 that.lis[index] && that.lis[index].click(); } 6.编辑 为元素(标题与内容)绑定双击事件 this.spans[i...].ondblclick = this.editTab; this.sections[i].ondblclick = this.editTab; 在双击事件处理文本选中状态,修改内部DOM节点,...createElement , 但是元素里面内容较多,需要innerHTML赋值在appendChild 追加到父元素里面. 5.现在高级做法:利用insertAdjacentHTMLO可以直接把字符串格式元素添加到父元素中

2K30

JavaScript详细解析

常用的事件 事件名 说明 onblur 元素失去焦点,在对象失去焦点时发生 onchange 域的内容被改变时发生 onclick 当用户点击某个对象时调用的事件句柄 ondblclick...常用的事件 onload onsubmit onclick ondblclick onblur onfocus onchange 绑定事件方式 方式一:通过标签中的事件属性进行绑定。...5、JavaScript综合案例 5.1、案例效果介绍 在“姓名、年龄、性别”三个文本框中填写信息后,添加到“学生信息表”列表(表格)中。 5.2、添加功能的分析 为添加按钮绑定单击事件。...将 td 添加到 tr 中。 获取文本框输入的信息。 创建 3 个文本元素。 将文本元素添加到对应的 td 中。 创建 a 元素。 将 a 元素添加到对应的 td 中。...将 tr 添加到 table 中。 5.3、添加功能的实现 <!

1.4K10

面向对象版tab 栏切换

,展示对应的内容区域,存储对应的索引 this.lis[i].index = i; this.lis[i].onclick = this.toggleTab; 使用排他,实现只有一个元素的显示...现在高级做法:利用insertAdjacentHTML()可以直接把字符串格式元素添加到父元素中 appendChild不支持追加字符串的子元素, insertAdjacentHTML支持追加字符串的元素...为添加按钮+ 绑定点击事件 this.add.onclick = this.addTab; 实现标题与内容的添加,做好排他处理 addTab() {    that.clearClass...this.remove[i].onclick = this.removeTab; 获取到点击的删除按钮的所在的父元素的所有,删除对应的标题与内容 removeTab(e) {    ...为元素(标题与内容)绑定双击事件 this.spans[i].ondblclick = this.editTab; this.sections[i].ondblclick = this.editTab

3.8K30
领券