如何检测下面的按钮当前是否被按下(被按住)?
<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/