清理/重构 Jquery 事件绑定以避免可能的重复



还有另一种方法可以编写此代码?我认为这有点不专业和混乱

基本上代码通过"输入键"和鼠标"单击"提交表单,所以还有另一种方法?

$("#form-signup-login input#login-submit").click(function()
{
    doLogin();
});
$('input#login-request-username-email, input#login-request-password').keyup(function(e){
    if(e.keyCode == 13)
        doLogin();
});

谢谢你的时间!

您是否正在寻找

submit事件处理程序? http://api.jquery.com/submit/

$("#login-submit").click(doLogin);
$('#login-request-password').keyup(function(e){
    if(e.keyCode === 13)
        doLogin();
});

解释:

  1. 无需在 id 选择器前面加上容器,因为它们在页面上是唯一的,您将回退到比嘶嘶声引擎更快的本机 getElementById 方法。
  2. 在第一种情况下,你可以只使用函数指针,不需要构建另一个回调函数
  3. 我只会在密码字段而不是用户名字段上绑定 keyup 事件,因为那里有一个自然流

或者绑定表单提交,默认情况下会为您处理所有这些工作。

$("#form-signup-login").submit(doLogin);

看起来你想在提交时这样做: 为什么不使用:

$("#form-signup-login").on("submit", function() {
    doLogin();
    return false;
});

其中 id 是表单的 ID,而不是任何输入。

$("#form-signup-login").submit(function (ev){
  // Do not let the browser handle the submit action
  ev.preventDefault();
  // Execute your custom submit function
  doLogin();
});

瞧!

最新更新