JavaScript的for循环中嵌套一个点击事件的问题解决
先看狼蚁网站SEO优化一段代码
for(var i=0; i<10; i++) { $('#ul').bind('click', function() { alert(i) }) }
对于这段代码,当点击Id为“ul”的元素时,会出现弹出10个10。为什么会弹出10个10呢?
,这段代码中的点击事件不是绑定事件,是jQuery的绑定事件,那么绑定事件和普通事件是有区别的。普通事件中,如果对某一个元素添加多个点击事件,那么,一个将会把前面的所有点击事件全部覆盖,只能执行一个点击事件;而在绑定事件中,则不一样,在同一个元素上,即使绑定再多的点击事件,都会全部执行。也就是说,普通事件中的onclick只支持单个事件,会被其他onclick事件覆盖,而事件绑定中的点击事件可以添加多个事件而不用担心被覆盖。那么,可想而知,当点击Id为“ul”的元素时,一定会弹出10个弹窗。
如果还是不太明白,那么对代码进行变形之后,就很容易理解了。
其实,上面的那段代码可以变形为以下形式
// i=0时 $('#ul').bind('click', function() { alert(i) }) // i=1时 $('#ul').bind('click', function() { alert(i) }) ...... // i=10时 $('#ul').bind('click', function() { alert(i) })
扩展狼蚁网站SEO优化这段代码是对上面的那段原始代码的比较,进一步说明普通事件和事件绑定的区别
for(var i=0; i<10; i++) { document.getElementById('ul').onclick = function() { alert(i) } }
运行结果弹出一个10
很显然,当触发点击事件时,会弹出10个弹窗。那么,可能又会有疑问?为什么会是10个10呢?不应该是0,1,2,3...10吗?为了解决这个疑惑,可对原始代码进行变形
var i=0 $('#ul').bind('click', function() { alert(i) }) i=1 $('#ul').bind('click', function() { alert(i) }) ...... i = 9 $('#ul').bind('click', function() { alert(i) })
原始代码,变形为这样之后,很显然,最终i的值是9,根据for循环的原理,在循环到i为9之后,会执行i++,之后再去判断i<10,此时已不满足条件,所以终止循环,最终i值为10。那么自然也就明白,为什么最终结果是10个结果为10的弹窗。
这段代码看似简单,却涵盖了事件绑定、普通事件、for循环等多个知识点。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望多多支持狼蚁SEO!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程