반응형
jQuery로 클릭 이벤트 중에 키가 눌 렸는지 어떻게 확인할 수 있습니까?
jQuery로 클릭 이벤트를 포착하고 동시에 키를 눌렀는지 알 수 있으므로 키 누르기 이벤트를 기반으로 콜백 함수 내에서 분기 할 수 있습니다.
예를 들면 :
$("button").click(function() {
if([KEYPRESSED WHILE CLICKED]) {
// Do something...
} else {
// Do something different...
}
});
이것이 가능합니까 아니면 가능하다면 어떻게 할 수 있습니까?
이벤트 속성에서 shift, alt 및 control 키를 쉽게 감지 할 수 있습니다.
$("button").click(function(evt) {
if (evt.ctrlKey)
alert('Ctrl down');
if (evt.altKey)
alert('Alt down');
// ...
});
더 많은 속성 은 quirksmode 를 참조하십시오 . 다른 키를 감지하려면 cletus의 답변을 참조하십시오 .
별도로 사용하여 키 상태를 추적해야 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>
반응형
'programing tip' 카테고리의 다른 글
CentOS 7에 pip를 설치하는 방법은 무엇입니까? (0) | 2020.08.16 |
---|---|
Cocoapods를 사용한 Xcode 단위 테스트 (0) | 2020.08.16 |
불변이란 무엇을 의미합니까? (0) | 2020.08.16 |
자바 : Class.this (0) | 2020.08.16 |
if-condition-assignment 한 줄 (0) | 2020.08.16 |