Jquery:不同的单击并输入处理程序

Jquery:不同的单击并输入处理程序,jquery,html,button,jquery-click-event,Jquery,Html,Button,Jquery Click Event,有一个按钮。我想检测用户是单击了它还是按了enter键,并根据发生的事件执行相应的操作。但是,当我按enter键时,click和enter处理程序都会被执行 我怎样才能解决这个问题 HTML: <button type="button"> Click me </button> $("button").keydown(function(e){ var keyCode = e.keyCode || e.which; if(keyCode === 13){

有一个按钮。我想检测用户是单击了它还是按了enter键,并根据发生的事件执行相应的操作。但是,当我按enter键时,click和enter处理程序都会被执行

我怎样才能解决这个问题

HTML:

<button type="button">
  Click me
</button>
$("button").keydown(function(e){
    var keyCode = e.keyCode || e.which;
  if(keyCode === 13){
      $("button").after("<div> enter was pressed </div>");
    }
})

$("button").click(function(){
    $("button").after("<div> click event </div>");
})

点击我
Jquery:

<button type="button">
  Click me
</button>
$("button").keydown(function(e){
    var keyCode = e.keyCode || e.which;
  if(keyCode === 13){
      $("button").after("<div> enter was pressed </div>");
    }
})

$("button").click(function(){
    $("button").after("<div> click event </div>");
})
$(“按钮”).keydown(功能(e){
var keyCode=e.keyCode | | e.which;
如果(键代码===13){
$(“按钮”)。之后(“按回车键”);
}
})
$(“按钮”)。单击(函数(){
$(“按钮”)。之后(“单击事件”);
})

改用
按键

$(document).keypress(function(e) {
  var keyCode = e.keyCode || e.which;
  if(keyCode === 13){
    $("button").after("<div> enter was pressed </div>");
  }
});

$("button").click(function(){
  $(this).blur().after("<div> click event </div>");
})
$(文档)。按键(功能(e){
var keyCode=e.keyCode | | e.which;
如果(键代码===13){
$(“按钮”)。之后(“按回车键”);
}
});
$(“按钮”)。单击(函数(){
$(this).blur().after(“单击事件”);
})
希望这有帮助

$(文档)。按键(功能(e){
var keyCode=e.keyCode | | e.which;
如果(键代码===13){
$(“按钮”)。之后(“按回车键”);
}
});
$(“按钮”)。单击(函数(){
$(this).blur().after(“单击事件”);
})

点击我
看 使用
e.preventDefault()你可以做到。

干杯

感谢您的回复!除了第一次有人按enter键外,这一切都很好。不客气,很高兴我能帮助您,这是第一次您只需关注文档,因为事件附加到
文档
,所以只需单击页面内的任意位置,然后单击enter。感谢您的回复。我在某个地方读到,使用preventDefault()不是一个很好的选择,因为我可能会导致问题。是这样吗?