检查是否在Javascript中单击了一个按钮

时间:2014-11-18 15:03:26

标签: javascript html button javascript-events click


这是我的问题:我想从javascript中看到此刻是否点击了某个对象,以下是一个例子:

setInterval(function() {
    if (document.getElementByTagName('button')[0].isBeingClicked) { //I know this isn't right: This is where my question is about.
        console.log('Button being clicked');
        return;
    };
    console.log('Button not being clicked');
}, 1000);


使用简化的HTML ofcourse:

<html>
    <head></head>
    <body>
        <button>Click me</button>
    </body>
</html>

[]是&lt; &GT; ofcourse。
总而言之:我希望能够看到此时是否点击了按钮或其他对象。如果已单击,则单击,但不是。

3 个答案:

答案 0 :(得分:2)

我认为这可能就是你要找的东西。

<强> HTML

<button onmousedown="mouseDown()" onmouseup="mouseUp()">Click me</button>

<强>的Javascript

<script>
var click = false;
function mouseDown() {
    click = true;
    console.log('Button being clicked');
}
function mouseUp() {
    click = false;
    console.log('Button not being clicked');
}
setInterval(function(){
    if (click === false) {  
        console.log('Button not being clicked');
    } else if (click === true) {
        console.log('Button being clicked');
    }
}, 1000)
</script>

可以找到替代解决方案,以及更深入的答案here

答案 1 :(得分:0)

正如乔治所说,你正在寻找mousedown()事件。它在点击发生后没有被点击后准确触发。

http://api.jquery.com/mousedown/

答案 2 :(得分:0)

  if (document.getElementsByTagName('button')[0].onmousedown)

你缺少s后元素。它返回一个数组,因此为[0]。如果这不是页面上的第一个按钮而不是工作,请使用下面的代码,如果有超过1个按钮,

var buttons=document.getElementsByTagName('button');
for(var i=0;i > buttons.length; i++){
  buttons[i].addEventlistener("mousedown", MyFunction);
}

按下任何按钮

,这将调用一个名为MyFunction的函数