for(vari;i
在線等,挺急的!js switch case 語句中 事件重復調用十分感謝
慕森王
2019-10-18 09:00:01
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);}}至于你的問題,這個代碼不能復現,我懷疑是在別的地方調用了多次綁事件的處理。
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;}}
舉報