Ответ 1
Вы можете использовать метод jQuery.
$("#inpt").on( "change keypress", function () {
code
});
У меня есть элемент ввода, и я хочу связать событие change и keypress со входом, но код обработки событий одинаковый для обоих событий. есть ли короткий способ сделать это, вместо того, чтобы писать один и тот же код дважды. ну, я мог бы написать метод, но хотел бы посмотреть, есть ли более простой способ сделать это.
$("#inpt").change(function(){
some code
});
$("#inpt").keypress(function(){
same code
});
Есть ли способ связать оба события?
Вы можете использовать метод jQuery.
$("#inpt").on( "change keypress", function () {
code
});
Вы можете сохранить функцию и привязать ее к обоим:
var fn = function(){ /*some code*/ };
$("#inpt").change(fn).keypress(fn);
Вы также можете использовать "живое" событие, а не "связывать", зашитое. Событие "live" будет охватывать даже динамические созданные элементы. (Устаревший на 1.7)
Kaless1n и Matthew, чтобы привязать к нескольким элементам, используйте "Attribute Starts With Selector":
var fn = function() { /*some code*/ };
$('input[id^="foo_"]').click(fn).keyup(fn).keydown(fn);
Это будет привязываться ко всем "входным" элементам, где "id" начинается с "foo_". Вы можете изменить "enter" на любой элемент onther и/или "id" с атрибутом "name", например.