在纯JavaScript中,我想确定当前是否按下按钮。
我不想使用在mousedown,mouseup或任何其他鼠标事件上设置标志的解决方案
有一个循环,由鼠标按下触发,此循环在setTimeout之后运行。 mouseup,mousedown的监听器不可用 - 我想做类似的事情:
let mainButton = document.getElementById("main-button");
// inside the callback of a setTimeout somewhere in the distant future.....
if(mainButton.??? isDown/style.isCurrrentlyClicked){
//doSomething
}
同样,没有用于此的mouseup / down标志。感谢。
答案 0 :(得分:2)
if ( $( '#btn:active' ).length ) // your button is active
答案 1 :(得分:1)
你可以玩这种风格,但这非常hacky
setInterval(() => {
let button = $('#btn');
let color = button.css('background-color');
if (color == 'rgb(255, 255, 255)') {
$('#status').text('Not clicked');
} else {
debugger; $('#status').text('Clicked');
}
}, 300);

button {
background-color: #FFF
}
button:active {
background-color: #F00;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">Click me</button>
<p id='status'></p>
&#13;
考虑到使用setInterval而不是事件处理程序只是一种轮询方法:如果间隔太短,性能将受到影响,但如果时间太长,响应性将会很糟糕