2013-06-03 20 views
3

我有一個輸入框,編號爲#input。此輸入框將在模糊或進入按鈕按下時啓動功能。如何檢測任一事件觸發器?

如何將兩個事件合併爲一個?

$('#input') 
.keypress(function(e)) 
.blur(function(event) { 
    //Do something 
}); 

回答

9

使用bind()。多個事件類型可以一次通過包括每一個用空格隔開的約束:

$('#input').bind('keypress blur', function(event) { 
    //Do something 
}); 

,或者您可以通過傳遞事件類型/處理程序對一個對象同時結合多個事件處理程序:

$('#foo').bind({ 
    keypress : function(e) { 
    e.preventDefault(); 
    if(e.which == 13) { //Detects enter key depressed! 
    // do something on keypress 
    } 
    }, 
    blur: function() { 
    // do something on blur 
    } 
}); 
+0

如何檢測輸入按鈕? – user1761160

+0

您需要一個專門針對要按的鍵的事件,因爲它不直接與任何頁面元素相關。 –

+0

我懂了很多。 – user1761160

0

像這樣:

$('#input').on('blur keypress', blurKeyPressHandler); 

function blurKeyPressHandler(event) { 
    if (event.type == 'keypress') { 
     // DO SOMETHING 
    } 
    else if (event.type == 'blur') { 
     // DO SOMETHING ELSE 
    } 
} 
0

你是說這兩個事件會調用同一個函數嗎?

您可以定義一個函數,並在事件觸發時調用它。

` function dosth (event) { 
    //Do something 
    }; 

    $('#input') 
    .keypress(dosth) 
    .blur(dosth); 
` 
相關問題