for(vari;i
2 回答

拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
首先,这个问题应该不是javascript语言的特性问题,属于程序逻辑的问题。其次,你的代码,有错误,在for里面vari应该还要给i初始化赋值,也即for(vari=0;i<10;i++)然后,我模拟了你的代码,没有重现你的问题,是不是你的type(i)取到的值都是一样的?这是我模拟的代码TEST crossorigin="anonymous"> btn0 btn1 btn2 for(vari=0;i<3;i++){switch(i){case0:$('#btn'+i).bind('click',function(event){console.log($(this).text());});break;case1:$('#btn'+i).bind('click',function(event){console.log($(this).text());});break;case2:$('#btn'+i).bind('click',function(event){console.log($(this).text());});break;default:break;}}

慕森卡
TA贡献1806条经验 获得超8个赞
i没有声明初始值的情况下是undefined,undefined<10是false,所以这个循环其实根本就没进去。因此题主可以看下是不是其他地方绑定造成。假设题主是写错了,其实是vari=0的话,目前对我们来说有两个黑盒,一个是type函数内部如何运作,一个是id这个map长什么样子,不过type无论是什么理论上在id[i]是不同值的情况下,也不会让每个id绑上n个,因此最有可能的还是id这个map是什么样子的,建议题主去看下这个id的map是不是有问题,是不是无论传任何i都返回同样的结果。
添加回答
举报
0/150
提交
取消