14

我有以下两个功能:

$("input").keypress(function(event) {
   if (event.which == 13) {
   //code        
   }       
});

$('#login_submit').click(function () {        
   //code                    
});

函数中使用的代码完全相同,基本上是代码复制。所以我想知道是否有办法将这些函数与 OR 语句结合起来?

4

5 回答 5

28

创建您自己的回调并将其传递给事件处理程序。

var callback = function() {...};

$("input").keypress(function() {
    if (event.which == 13) callback();
});

$('#login_submit').click(callback);
于 2013-02-03T16:14:20.620 回答
10

向您的 HTML 添加一个类

<input class="myClass">
<div id="login_submit" class="myClass" ></div>

现在你可以写:

$(".myClass").bind("keypress click", function(){});

或者这样做:

$("input").add("#login_submit").bind("keypress click", function(){});

请注意,单击输入也会触发此操作。

于 2013-02-03T16:21:35.417 回答
2

你为什么不这样做呢?

$("input").keypress(function(event) {
    if (event.which == 13) {
        foospace.yourfunction();
    }       
});

$('#login_submit').click(function () {        
    foospace.yourfunction();                    
});

var foospace={}; 
foospace.yourfunction=function() { 
    alert("your code goes here!"); 
}

编辑:

@David 的回调解决方案稍微优雅一些​​。

于 2013-02-03T16:14:44.550 回答
1

我会像这样链接事件:

        var watchCurrentCursorPosition = function (){
            console.log("foo");
        }
        $("input").keypress(
            watchCurrentCursorPosition

        ).click(
            watchCurrentCursorPosition
        );
于 2015-10-05T09:57:20.580 回答
0

对于那些仍在寻找@Sino 问题答案的人。

函数中使用的代码完全相同,基本上是代码复制。所以我想知道是否有办法将这些函数与 OR 语句结合起来?

JQuery .on()方法是要走的路。

描述:将一个或多个事件的事件处理函数附加到选定元素。

所以你的代码可以是这样的:

$("input").on("click keypress", function(event) {
  if (event.which === 13) {
    event.preventDefault();
    //code        
  }       
});
于 2019-04-01T21:00:34.877 回答