2011-05-03 51 views
8

我想知道你如何能做到爲同一#id.keyup().click()jQuery的KEYUP和點擊

即基本上我要當兩個用戶試圖打進入或打#search按鈕來驗證#id

非常感謝

回答

17
$('#foo').bind('click keyup', function(event) { 
    ... 

你必須添加一些邏輯,作爲事件類型的變化,但它應該有足夠的if塊工作。

+0

我最初以爲這太,但它並不像任擇議定書真的要多個事件綁定到DOM對象,而是有多個事件的多個對象調用相同的代碼。 – justkt 2011-05-03 14:43:49

+0

啊,那似乎是正確的。 @尼爾的回答比較合適。 – Blender 2011-05-03 14:45:15

+0

喜 - 是非常感謝。目的是在多個對象上調用多個事件? – Tom 2011-05-03 14:45:28

3

那麼你可以這樣做:

 $(document).keydown(function(objEvent) { 
      if (objEvent.keyCode == 13) { //clicked enter 
       $('#search').click(); //do click 
      } 
     }) 

     $("#search").click(function(e){/*click fn*/}) 

將運行在點擊進入按

2
$("#id").click(validate).keyup(function(event) 
{ 
    if (event.keyCode == '13') validate(); 
}); 
function validate() { ... validate $(this).val(); ... } 
2

我會去這樣的事情:

function validate(element) { 
    // your validation stuff goes here 
} 

$('#id').keyup(function(event) { 
    if (event.keyCode == 13) { 
     validate(this); 
    } 
}).click(function() { 
    validate(this); 
}); 
1

新的jQuery提供的事件,其屬性來檢查被擠壓,從而喲現在可以做這樣的事情了哪個鍵:

$(#id").on('keyup',function(e){ 
    if (e.which==13 || e.which==9) doSomething(this); //Enter or Tab key 
});