有時偵測到 Key 時, 不想讓 Key 繼續蔓延下去使用, 即可考慮這個方式處理
function preventDefault(ev) {
if (ev.preventDefault){
ev.preventDefault();
}else if (ev.cancelBubble){
ev.cancelBubble = true;
}else{
ev.returnValue = false;
}
}
document.onkeydown=keyAtPost;
function keyAtPost(e){
var evt = window.event || e ;
var evt_key = evt.which != null ? evt.which : evt.keyCode ;
var GetDefine = 0 ;
if ( evt_key > 47 && evt_key < 58 ){ // 以數字鍵為例
switch( state_control ){
...
case STATE_INIT:
state_control = STATE_GO;
...
GetDefine = 1;
break;
...
}
}
if( GetDefine ) {
preventDefault(evt);
}
}
當 match 到一個自訂的狀態時,不想讓此鑑盤事件繼續蔓延到其他地方,好比如現在正在 textarea 時 把數字鍵當成特殊鍵使用,並且不想在 textarea 顯示數字時 可採用這種方式處理
--
在此感謝 Vexed 學長的教導 :D
沒有留言:
張貼留言