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

在线等,挺急的!js switch case 语句中 事件重复调用十分感谢

在线等,挺急的!js switch case 语句中 事件重复调用十分感谢

慕森王 2019-10-18 09:00:01
for(vari;i
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

这种情况我一般会这么写
functiononImport(){}
functiononSave(){}
constactions={
//如果有参数自己扩展
"import":()=>onImport(),
"save":()=>onSave()
};
for(leti=0;i<10;i++){
consthandler=actions[type(i)];
if(handler){
$(id[i]).bind(handler);
}
}
至于你的问题,这个代码不能复现,我怀疑是在别的地方调用了多次绑事件的处理。
                            
查看完整回答
反对 回复 2019-10-18
?
慕沐林林

TA贡献2016条经验 获得超9个赞

首先,这个问题应该不是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-10-18
  • 2 回答
  • 0 关注
  • 233 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信