2011-05-12 96 views
2

在下面的switch語句中,當左鍵被按下時,它會向左提醒,並且當頂鍵被按下時,它會提醒頂部。我怎樣才能使移位和左鍵組合的情況。jQuery e.which在switch語句中

$(document).keydown(function(e) { 
    switch (e.which) { 
     case 37: alert('left'); //left arrow key 
      break; 
     case 38: alert('top');; //up arrow key 
      break; 
     case ??: alert('shift + left'); //How can i make this repond to the combination of shift + left arrow keys. 
      break; 
    } 
}); 

回答

5

shift鍵是一個修飾符,可以在case語句中爲左鍵檢查。

$(document).keydown(function(e) { 
    switch (e.which) { 
    case 37: 
     if (e.shiftKey) { 
      alert('shift+left'); // shift and left arrow key 
     } 
     else { 
      alert('left'); //left arrow key 
     } 
     break; 
    case 38: 
     alert('top'); //up arrow key 
     break; 
    } 
}); 

演示:http://jsfiddle.net/ZL9Fx/1/

+0

感謝。它效果很好。在使用條件快捷鍵「e.shiftKey」之前,我嘗試了同樣的事情? alert('shift + left'):alert('left');'我也試過'e.which == 16? alert('shift + left'):alert('left');'並且它不起作用。是否有這個快捷方式不起作用的原因。 – Pinkie 2011-05-12 21:45:17

+1

@Pinkie,試試'alert(e.shiftKey?'shift + left':'left')' – 2011-05-12 21:48:36

+0

@Pinkie:這對我很有用:http://jsfiddle.net/ZL9Fx/2/ – 2011-05-13 02:10:57