programing tip

jQuery로 클릭 이벤트 중에 키가 눌 렸는지 어떻게 확인할 수 있습니까?

itbloger 2020. 8. 16. 19:55
반응형

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>

참고 URL : https://stackoverflow.com/questions/2445613/how-can-i-check-if-a-key-is-pressed-during-the-click-event-with-jquery

반응형