如何结合按键和在JavaScript中的点击功能?

时间:2013-02-03 16:11:29

标签: javascript jquery

我有以下两个功能:

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

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

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

5 个答案:

答案 0 :(得分:17)

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

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

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

$('#login_submit').click(callback);

答案 1 :(得分:8)

在HTML中添加一个类

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

现在你可以写:

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

或者这样做:

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

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

答案 2 :(得分:1)

为什么不这样做?

$("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的回调解决方案稍微优雅一点。

答案 3 :(得分:0)

我会将事件链接起来:

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

        ).click(
            watchCurrentCursorPosition
        );

答案 4 :(得分:0)

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

  

函数中使用的代码完全相同,基本上是代码复制。所以我想知道是否有一种方法可以将这些功能与OR语句组合在一起?

使用jQuery documentation方法是可行的。

  

说明:将一个或多个事件的事件处理函数 附加到所选元素。

因此您的代码可以像这样:

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