为了账号安全,请及时绑定邮箱和手机立即绑定

js switch case 语句中 事件重复调用怎么回事哈啊?

js switch case 语句中 事件重复调用怎么回事哈啊?

MMMHUHU 2019-08-25 22:54:17
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;
}
}
                            
查看完整回答
反对 回复 2019-08-25
?
慕森卡

TA贡献1806条经验 获得超8个赞

i没有声明初始值的情况下是undefined,undefined<10是false,所以这个循环其实根本就没进去。因此题主可以看下是不是其他地方绑定造成。
假设题主是写错了,其实是vari=0的话,目前对我们来说有两个黑盒,一个是type函数内部如何运作,一个是id这个map长什么样子,不过type无论是什么理论上在id[i]是不同值的情况下,也不会让每个id绑上n个,因此最有可能的还是id这个map是什么样子的,建议题主去看下这个id的map是不是有问题,是不是无论传任何i都返回同样的结果。
                            
查看完整回答
反对 回复 2019-08-25
  • 2 回答
  • 0 关注
  • 773 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号