将相同的事件处理代码附加到jquery中的多个事件

时间:2009-02-04 03:32:25

标签: javascript jquery

我有一个输入元素,我想用输入绑定change和keypress事件,但事件处理代码对于这两个事件都是相同的。是否有任何简短的方法,而不是两次编写相同的代码。好吧,我可以写一个方法,但想知道是否有更简单的方法来做到这一点

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

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

有什么方法可以绑定这两个事件吗?

3 个答案:

答案 0 :(得分:39)

您可以在方法上使用jQuery。

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

答案 1 :(得分:6)

您可以保存该功能并将其绑定到:

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

答案 2 :(得分:1)

你也可以使用'live'事件而不是sugested'bind'。 “现场”活动甚至将涵盖动态创建的元素。(在1.7上弃用)

Kaless1n和Matthew,绑定到多个元素使用“属性从选择器开始”:

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

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

这将绑定到'id'以'foo_'开头的所有'input'元素。您可以将“输入”更改为任何onther元素和/或将“id”更改为“name”属性。