有没有办法检测按钮的按下方式?
是否有一种简短的javascript方式来检测这个?或者我是否需要为点击,输入和触摸添加事件监听器?我想获取表单提交的数据。感谢
答案 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)
所有mousedown
,click
和key 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
事件。
所以最好只使用点击事件本身。