检测javascript中按钮的按下方式

时间:2015-04-07 05:09:03

标签: javascript

有没有办法检测按钮的按下方式?

  • 鼠标点击//鼠标事件
  • 通过标签突出显示,然后输入键//按键事件
  • 触摸(手机)//触摸事件

是否有一种简短的javascript方式来检测这个?或者我是否需要为点击,输入和触摸添加事件监听器?我想获取表单提交的数据。感谢

4 个答案:

答案 0 :(得分:2)

这是你可以处理

的方法
  

通过标签突出显示,然后输入键//按键事件

$('a').click(function(e) {
    console.log(e);

    // Screen Positions returns 0 on enter
    if( e.screenX == 0 && e.screenY == 0 ) {
        alert('Enter');
    }
    else if( e.type == "click" ) {
        alert('click');
    }
});

DEMO因为休息,你会很容易发现。

答案 1 :(得分:0)

根据我的经验,“输入”和“触摸”也会触发“点击”。

我认为添加一个事件监听器以“点击”来处理所有必需的事件是安全的。

在这里试试:https://jsfiddle.net/wvv2v8r2/

<input type="submit" value="test click" />

$('input').click(function(){
    alert('clicked');
});

答案 2 :(得分:0)

点击并触摸即可在onclick的帮助下处理 但是对于突出显示的选项卡,然后输入密钥,您需要单独的代码

答案 3 :(得分:0)

所有mousedownclickkey press事件都只会触发click事件。不需要有三个不同的事件监听器。

如果你有三个事件处理程序,那么执行顺序会有所不同。

keypress上,首先keypress将触发click

如果你有mousedown,那么首先mousedown会触发click

document.querySelector("#button").addEventListener("click", function(event) {
  console.log("click");
}, false);

document.querySelector("#button").addEventListener("mousedown", function(event) {
  console.log("mousedown");
}, false);

document.querySelector("#button").addEventListener("keypress", function(event) {
  var keyCode = event.keyCode || event.which;
  if(keyCode===13) {
     console.log("enter pressed");
  }
}, false);

<强> DEMO

在演示中,您会注意到,所有内容都参考了最后的click事件。

所以最好只使用点击事件本身。