JavaScript:循环绑定事件-封装函数、闭包解决 作者:马育民 • 2022-08-04 20:06 • 阅读:10083 # 提出问题 ``` 测试1 测试2 测试3 ``` **执行结果:**点击 `li` 标签,全部都显示 `3` **原因:**因为js的函数是调用时触发,绑定事件的时候 `i` 值并没有被传入执行函数里。触发事件时,循环已经结束,此时的 `i` 值为 索引最大值 # 解决 ### 方式一:封装函数 ``` // 定义函数 function f(dom,value){ // 此时value的值就确定了,不会随着变量i的值改变 dom.onclick = function(){ alert(value) } } var lis = document.getElementsByTagName("li") for(var i = 0;i 原文出处:http://malaoshi.top/show_1IX3noRog4lm.html