javascript - 检测输入按钮按下状态

标签 javascript html

如何检测下面的按钮当前是否被按下(被按住)?

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

澄清一下,我的意思并不是检测按钮是否被单击,而是检测按钮是否处于事件状态。

我尝试使用 mousedown事件,但如果用户使用键盘操作按钮,按 Tab 键切换到按钮并按住空格键,则该按钮不起作用。

最佳答案

它与 jquery mousedown 配合良好( native js 中的 onmousedown ) mouseup ( native 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>

关于javascript - 检测输入按钮按下状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43735532/

相关文章:

javascript - 延迟脚本加载

javascript - jQuery .load seo 对谷歌蜘蛛友好吗?

html - 如何配置立即进行更改的 webpack 或 typescript ?

javascript - ES6 类中的作用域

javascript - navigator.share() 无法在 HTTPS 和支持的浏览器中工作

html - 最后一个容器上的空白

html - 鼠标悬停时下拉菜单消失

html - 有没有办法限制移动视口(viewport)的大小?

javascript - 在 Canvas 上绘制更多内容而无需创建更多脚本标签

java - 在线考试网络申请