我有一个输入元素,我想用输入绑定change和keypress事件,但事件处理代码对于这两个事件都是相同的。是否有任何简短的方法,而不是两次编写相同的代码。好吧,我可以写一个方法,但想知道是否有更简单的方法来做到这一点
$("#inpt").change(function(){
some code
});
$("#inpt").keypress(function(){
same code
});
有什么方法可以绑定这两个事件吗?
答案 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”属性。