2009-02-04 48 views
16

我有一个输入元素,我想绑定与输入的更改和按键事件,但事件处理代码是相同的两个事件。有没有这样做的简短方式,而不是写两次相同的代码。好了,我可以写一个方法,但想看看是否有这样做将相同的事件处理代码附加到jquery中的多个事件

$("#inpt").change(function(){ 
    some code 
}); 

$("#inpt").keypress(function(){ 
    same code 
}); 

的任何简单的办法是有什么办法可以绑定两个事件?

回答

39

您可以在方法中使用的jQuery的。

$("#inpt").on("change keypress", function() { 
    code 
}); 
+1

谢谢,那就是我在找的东西。 – 2009-02-04 03:50:03

6

可以保存功能,并将其绑定到这两个:

var fn = function(){ /*some code*/ }; 
$("#inpt").change(fn).keypress(fn); 
1

您还可以使用,而不是“绑定”的“直播”事件一个sugested。 '活'事件将涵盖甚至动态创建的元素。 (弃用上1.7)

Kaless1n和Matthew,结合多个元件使用“属性开头字符选择器”:

var fn = function() { /*some code*/ }; 

$('input[id^="foo_"]').click(fn).keyup(fn).keydown(fn); 

这将结合到所有“输入”元素,其中的“id”开始与'foo_'。例如,您可以将'input'更改为任何onther元素和/或带'name'属性的'id'。

相关问题