如何在 for 循环中使用 jQuery 切换功能
How to use jQuery toggle function in a for loop
我在 20 个元素上使用 jQuery 切换函数,所以我使用了 for 循环。
下面的代码只打印最后一个函数,即第 20 个切换函数。
我想调用所有切换函数,我该怎么做?
for(var _rr=1;_rr<=20;_rr++) {
$("#scell_img"+_rr).toggle(function () {
$("#scell_img1").attr('src','./resources/img/cancercell/cell_'+_rr+'.png');
_US620310CD_1._smallclickcount = _US620310CD_1._smallclickcount + 1;
}, function () {
$("#scell_img"+_rr).attr('src','./resources/img/cancercell/cell'+_rr+'.png');
_US620310CD_1._smallclickcount = _US620310CD_1._smallclickcount - 1;
});
}
我相信问题是变量_rr
是通过回调函数中的闭包访问的,因此每次调用回调时它的值都是 20。试试这个:
for(var _rr=1; _rr<=20;_rr++) (function(_rr) {
$("#scell_img"+_rr).toggle(function () {
$("#scell_img1").attr('src','./resources/img/cancercell/cell_'+_rr+'.png');
_US620310CD_1._smallclickcount = _US620310CD_1._smallclickcount + 1;
}, function () {
$("#scell_img"+_rr).attr('src','./resources/img/cancercell/cell'+_rr+'.png');
_US620310CD_1._smallclickcount = _US620310CD_1._smallclickcount - 1;
});
})(_rr);
包装函数提供了一个新作用域,其中有一个新变量(也称为 _rr
),其值不会被循环更改。
相关文章:
- 重新启动游戏jQuery功能不工作
- 如何在iframe中激活jquery功能
- 为什么我不能使用jQuery功能
- 如何禁用缩略图的jquery功能
- 页面内容加载完毕后执行Jquery功能
- 按下空格键一次后,Jquery功能不起作用
- 单击滚动条时禁用Jquery功能
- 当屏幕大小小于480px时,如何禁用jQuery功能
- JQuery功能,可在任何地方增加字体大小
- 平移缩放 JQuery 功能
- jQuery功能,用于隐藏基于未在点击上运行的HTML5数据标签的元素
- 如何在循环中创建的多个按钮上使用相同的 jquery 功能
- 是否可以在更改单选按钮时禁用/启用jquery功能
- 如何使文本框值更改对 jQuery 功能生效
- 结合导航UL jQuery功能
- jQuery功能,根据粘贴文本时不起作用的字数限制文本输入
- mvc 4 jquery功能与dropdownlist和window.onload问题有关
- 固定导航条的JQuery功能不工作
- 单击导航选项卡时分配jQuery功能
- IE 11显示错误时,我点击jquery功能