답변:
이벤트 속성에서 shift, alt 및 control 키를 쉽게 감지 할 수 있습니다.
$("button").click(function(evt) {
if (evt.ctrlKey)
alert('Ctrl down');
if (evt.altKey)
alert('Alt down');
// ...
});
더 많은 속성 은 quirksmode 를 참조하십시오 . 다른 키를 감지하려면 cletus의 답변을 참조하십시오 .
if (e.metaKey) alert('Command down')
. 다음은 JS unixpapa.com/js/key.html의
별도로 사용하여 키 상태를 추적해야 keydown()
하고 keyup()
:
var ctrlPressed = false;
$(window).keydown(function(evt) {
if (evt.which == 17) { // ctrl
ctrlPressed = true;
}
}).keyup(function(evt) {
if (evt.which == 17) { // ctrl
ctrlPressed = false;
}
});
키 코드 목록을 참조하십시오 . 이제 다음을 확인할 수 있습니다.
$("button").click(function() {
if (ctrlPressed) {
// do something
} else {
// do something else
}
});
JavaScript만으로도 사용할 수있었습니다
<a href="" onclick="return Show(event)"></a>
function Show(event) {
if (event.ctrlKey) {
alert('Ctrl down');
}
}
@Arun Prasad의 천둥을 훔치지 않고 여기에 기본 동작을 중지하기 위해 다시 해싱 한 순수한 JS 스 니펫이 있습니다. 그렇지 않으면 CTL + 클릭을 누르면 새 창이 열립니다.
function Show(event)
{
if (event.ctrlKey)
{
alert('Ctrl held down which clicked');
}
else
{
alert('Ctrl NOT pressed');
}
return false
}
<p>Hold down CTL on the link to get a different message</p>
<a href="" onclick="return Show(event)">click me</a>