如何在jQuery中创建自定义onEnter事件?

Ove*_*esh 5 javascript jquery events

我想在jQuery中创建一个自定义事件来捕获ENTER onkeypress事件,这样我就不必每次都以这种方式编码:

if(e.keyCode == 13) {
    // event code here
}
Run Code Online (Sandbox Code Playgroud)

换句话说,我希望能够像这样编码:

$("selector").bind("enter", function(){
    // event code here
});
Run Code Online (Sandbox Code Playgroud)

Nic*_*ver 10

现代jQuery(1.7及更高版本)用于.on()绑定事件处理程序:

// delegate binding - replaces .live() and .delegate()
$(document.body).on("keyup", ":input", function(e) {
  if(e.which == 13)
    $(this).trigger("enter");
});

// direct binding - analogous to .keyup()
$(":input").on("keyup", function(e) {
  if(e.which == 13)
    $(this).trigger("enter");
});
Run Code Online (Sandbox Code Playgroud)

旧版本的jQuery使用以下方法之一.您可以为所有元素设置单个.live().delegate()事件处理程序.然后使用它来触发您的自定义事件,如下所示:

$(document.body).delegate(":input", "keyup", function(e) {
  if(e.which == 13)
    $(this).trigger("enter");
});
Run Code Online (Sandbox Code Playgroud)

不是任何:input元素,你可以做你所拥有的:

$("selector").bind("enter", function(){
   //enter was pressed!
});
Run Code Online (Sandbox Code Playgroud)

你可以在这里测试一下.