2013-02-03 50 views
6

我有以下兩個功能:如何在JavaScript中結合按鍵和點擊功能?

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

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

其在功能被使用的代碼是完全一樣的代碼,基本上代碼dublication。所以我想知道是否有辦法將這些函數與OR語句結合起來?

+1

爲什麼不把這些代碼在一個單獨的功能?並調用函數... –

+0

我需要相同的,但與AND邏輯 – Erdnuss

回答

15

創建您自己的回調並將其傳遞給事件處理程序。

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

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

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

我已經使用此解決方案,它的工作完美。謝謝大衛。 – Sino

0

你爲什麼不這樣做呢?

$("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!"); 
} 

編輯:

通過@大衛回調的解決方法是稍微更優雅。

5

類添加到您的HTML

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

現在你可以這樣寫:

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

還是做到這一點:

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

注意,點擊輸入也會觸發這個。

0

我會鏈狀的事件:

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

     ).click(
      watchCurrentCursorPosition 
     );