js循环绑定事件解决方案

var add_the_handlers = function (nodes) {

var helper= function (i) {
return function (e) {
alert(i);
};
};

var i;


for (i = 0; i < nodes.length; i += 1) {
nodes[i].onclick =helper(i);
}
};

时间: 2024-10-13 21:23:53

js循环绑定事件解决方案的相关文章

js循环绑定事件

在js中,用循环来为一对元素队列的元素绑定事件,是一个常见的问题. 通常进入误区的新人,都会这么写代码: (假设元素队列为o,默认使用jQuery) //error method var o =$('.blockHead'); for(var i=0; i<o.length; i++){ o[i].onclick = function(){ function(i){ alert(i); } } } 当然这种情况下,你会发现每个元素点击运行时,显示的 i值 都是 o.length-1: 因为js的

遇到的问题(JS循环绑定事件)

问题描述:想通过循环的方式给HTML元素绑定事件,结果失败---总是会只能绑定到最后一个元素. HTML <div id="bnts"> <span></span> <span></span> <span></span> <span></span> </div> JS var bnts = document.getElementById("bnts"

JavaScript利用闭包循环绑定事件

我们经常在做前端面试题的时候,会遇到循环绑定事件后,输出打印结果,很多人总是搞不清楚,今天借此机会跟大家梳理一下闭包相关作用. 1.首先我们举一个简单的例子. html部分: <a href="#">首页</a> <a href="#">作品</a> <a href="#">文章</a> <a href="#">工具</a> <

JS中绑定事件顺序(事件冒泡与事件捕获区别)

在JS中,绑定的事件默认的执行时间是在冒泡阶段执行,而非在捕获阶段(重要),这也是为什么当父类和子类都绑定了某个事件,会先调用子类绑定的事件,后调用父类的事件.直接看下面实例 <!Doctype html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> *{margin:0;p

JS循环添加事件

通常我们会这样给元素添加事件: var ul=document.getElementsByTagName("ul")[0]; var list=document.getElementsByTagName("li"); for(var i=0;i<li.length;i++){ list[i].onclick=function(){ alert("我的index是"+i); } } 但结果往往不是我们想象的那样,它们全部弹出是"我的

JS(绑定事件)

事件绑定方式一:属性中绑定 <input type="button" value="+" onclick="fun1()"> <script> function fun1(){ alert(123); } </script> 事件绑定方式一带参数this,this指代本标签 <div class="div1" onclick="fun1(this)">div1

js on绑定事件

abort 当用户中断下载图像时触发.activate 当对象设置为活动元素时触发.afterprint 对象所关联的文档打印或打印预览后立即在对象上触发.afterupdate 当成功更新数据源对象中的关联对象后在数据绑定对象上触发.beforeactivate 对象要被设置为当前元素前立即触发.beforecopy 当选中区复制到系统剪贴板之前在源对象触发.beforecut 当选中区从文档中删除之前在源对象触发.beforedeactivate 在 activeElement 从当前对象变

JavaScript利用闭包解决循环绑定事件

例子: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <button></button> <button></button> <button></button> </body> <script type="text/javasc

JavaScript案列001 for循环绑定事件

场景-错误写法 解决方法一 : 解决方案二: 解决方案三: 原文地址:https://www.cnblogs.com/anduyinglufei/p/10352692.html