2017-05-02 13 views
1

下のボタンが現在押されている(押されている)のを検出する方法はありますか?入力ボタンのダウン状態を検出する

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

明確にするために、私はボタンがクリックされたかどうかを検出するために意味するものではありませんが、アクティブ状態に押されて。

私はmousedownイベントを使用しようとしましたが、ユーザーがキーボードでボタンを操作し、ボタンにタブで移動してスペースバーを押し下げても機能しません。

+1

'onmousedown'イベント –

+0

てみてください@ DavorMlinaric私はこれを既に試してみましたが、私はこの問題を私の質問で言及しました、問題は、ユーザーがキーボードでボタンを操作できるということです。 – Drahcir

+0

ボタンを押すと、マウスイベント+(フォーカスとアクティブ)クラスがボタンにアタッチされます。キーボードを介して処理が完了すると、マウスイベントが発生しない間はそれぞれのフックとアクティブなクラスだけが追加されます。私はこれがボタンを押すのを決定するために使用できるのだろうかと思います。 – blueren

答えて

1

それはjqueryのmousedown(ネイティブJSでonmousedownmouseup(ネイティブ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