2017-05-02 1 views
1

아래의 버튼이 현재 눌려져 있거나 눌려져 있는지 어떻게 알 수 있습니까? 입력 버튼 다운 상태 감지

<input type="button" value="Hold it down" id="aButton">

내가 버튼을 클릭 만 활성 상태에서 아래로 개최되는 경우 감지하는 뜻이 아니라, 명확합니다.

mousedown 이벤트를 사용하려고했지만 사용자가 키보드로 버튼을 조작하고 버튼으로 탭 이동 한 다음 스페이스 바를 누르고 있으면 작동하지 않습니다.

+1

이 onmousedown' 이벤트 –

+0

'으로 시도 @ DavorMlinaric 나는 이것을 이미 시도했다. 나는이 문제를 내 질문에 언급했다. 문제는 사용자가 키보드로 버튼을 조작 할 수 있다는 것이다. – Drahcir

+0

버튼을 누르면 마우스 이벤트 + (포커스 및 활성) 클래스가 버튼에 첨부됩니다. 키보드를 통해 완료되면 마우스 이벤트가 없을 때 해당 파일과 활성 클래스 만 추가됩니다. 이것이 버튼 누르기를 결정하는 데 사용될 수 있는지 궁금합니다. – blueren

답변

1

이 작업 샘플 벨로 (기본 JS에서 onmousedown) JQuery와 mousedownmouseup (기본 JS에서 onmouseup) 이벤트와 함께 잘 작동 :

$(document).ready(function(){ 
 
    $("#btn").on("mousedown",function(){ 
 
    console.log("btn click down using mouse"); 
 
    }) 
 
    var firstKeydown = true; 
 
    $("#btn").on("keydown",function(e){ 
 
    if(e.which == 32){ // check if clicked button is sapcebar "code =32" 
 
     if(firstKeydown) { // to prevent multiple firing 
 
      console.log("btn click down using keyboard"); 
 
      firstKeydown = false; 
 
     } 
 
    } 
 
    }) 
 
    
 
    $("#btn").on("mouseup",function(){ 
 
    console.log("btn click up using mouse"); 
 
    }) 
 

 
    $("#btn").on("keyup",function(e){ 
 
    if(e.which == 32) { // check if clicked button is sapcebar "code =32" 
 
     console.log("btn click up using keyboard"); 
 
     firstKeydown =true; 
 
    } 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="btn">Button</button>

+0

죄송합니다. 스페이스 바를 사용하여 버튼을 누르면 작동하지 않습니다. Mac에서 Chrome을 사용하고 있습니다. – Drahcir

+0

이것은 센스가 되는가? –

+0

아무도 더 좋은 해결책을 게시하지 않는다면 고마워, 받아 들일 것이다. 사람들이 반응 할 수있는 기회를주기 위해 잠시 기다려주십시오. – Drahcir