天天看點

解決keydown重複觸發/送出的問題

問題描述:Javascript中keydown會重複觸發,導緻了重複送出的問題
解決方案:

一、使用keyup事件代替

document.addEventListener('keyup',function(){
	//dosomething...
});
           

該方法在

shift+enter

等組合鍵有一定機率不觸發的問題,具體看個人操作習慣

二、使用flag變量控制

var flag=false;
document.addEventListener('keydown',function(){
	if(flag){
		return;
	}
	flag=true;
	//dosomething...
});
document.addEventListener('keyup',function(){
	flag=false;
});
           

該方法在

shift+enter

等組合鍵時需特殊處理

三、使用event.repeat

document.addEventListener('keydown',function(e){
	if(e.repeat){
		return ;
	}
	//doSomething...
});
           

該方法會有相容性的問題,參考:http://help.dottoro.com/ljbupnfj.php,https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat

繼續閱讀