通过 for 循环绑定会产生错误的结果
Binding via for-loop produces wrong result
我的网站上有许多缩略图,它们应该都显示相同的幻灯片放映,但显示不同的幻灯片(通过添加和删除.hidden
类)。这将由 function showWork(toShow)
完成,toShow
是一个数字,指的是应该可见的幻灯片。该函数还会提醒回此参数。
我还想通过mouseup
事件绑定到不同的缩略图div来使用JavaScript来做到这一点。由于我不想单独列出每个绑定,我决定将所有div id 放在一个数组 ( workArr
) 中并创建一个 for 循环:
for(i=0; i < workArr.length; i++){
$("#"+workArr[i]).bind({
mouseup: function(){
showWork(i);
}
});
}
我的数组长度为 14。当我运行此代码时,我收到"14"的警报,并且没有显示幻灯片(因为没有 14. 幻灯片)。
我做错了什么?
你需要使用闭包:
for(i=0; i < workArr.length; i++){
(function(i){
$("#"+workArr[i]).bind({
mouseup: function(){
showWork(i);
}
});
})(i);
}
相关文章:
- 如何知道javascript for语句中的所有结果是否都是错误的
- JScript 错误: 无法分配给函数结果
- json-api和错误结果:无法读取属性'长度'的未定义
- 显示错误结果的Javascript
- javascript使用正则表达式得到错误的结果
- 在页面对象文件中验证sendKeys结果会导致未定义的错误(Protractor)
- YouTube API v3哈希标签搜索错误结果
- jQuery.Validate - 如何将错误结果放在不同的地方
- 检查JavaScript中的日期时间是否相等时出现错误结果
- 转换日期时出现错误结果
- Lodash partialRight padStart映射产生错误结果
- 在javascript中乘法的错误结果
- 用于显示错误结果的JavaScript嵌套
- 什么'这是处理promise对象中错误结果的正确方法
- 显示错误结果的typeOf
- Javascript getDate()和getMonth()返回错误结果
- LokiJS:简单的查找查询返回错误结果
- Bootstrap-datepicker getDate错误结果
- 比较select.val()和span.text()后产生错误结果
- 坐标转换javascript库Pro4js错误结果