【问题标题】:Check if a button is being clicked in Javascript [duplicate]检查是否在Javascript中单击了按钮[重复]
【发布时间】:2015-01-15 19:46:34
【问题描述】:


这是我的问题:我想从 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:

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

所以总的来说:我希望能够查看此时是否正在单击按钮或其他对象。如果它已被点击,则不是,而是正在被点击。

【问题讨论】:

  • 定义“被点击”
  • 您在寻找mousedownmouseup 事件吗?
  • 是的,布兰登。谢谢!

标签: javascript html button click dom-events


【解决方案1】:

正如 George 所说,您正在寻找 mousedown() 事件。它在点击发生时触发,而不是在点击之后触发。

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

【讨论】:

    【解决方案2】:
      if (document.getElementsByTagName('button')[0].onmousedown)
    

    您缺少 s 之后的元素。它返回一个数组,因此是 [0]。如果这不是页面上的第一个按钮,那么这将不起作用,如果有多个按钮,请使用下面的代码,

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

    这将在按下任何按钮时调用一个名为 MyFunction 的函数

    【讨论】:

    • 是的,我已经尝试过了,但我的目的是检查是否单击了按钮,并且没有单击时调用的函数。所以这是一种相反的方式。还是谢谢!
    【解决方案3】:

    我认为这可能是您正在寻找的。

    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 找到替代解决方案和更深入的答案。

    【讨论】:

      猜你喜欢
      • 2014-07-01
      • 1970-01-01
      • 2012-03-07
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多