У меня был очень похожий вопрос. Однако я не смог найти полное решение.
Я просто хотел прикрепить одну и ту же функцию к 2 различным элементам, используя 2 различных метода ее выполнения. Например, что хотел Том: НАЖМИТЕ на ссылку, ИЛИ нажмите ENTER в поле ввода и выполните ту же функцию (т. Е. Перейдите на другую страницу).
Джейкоб Релкин представил хорошую идею для нажатия клавиши ввода. Я включил это в код ниже:
Итак, на основе следующей простой разметки:
<div>
<label for="myInput">Type Stuff</label>
<input id="myInput" type="text" value="" />
<a id="myButton" href="http://google.com">Click me!</a>
</div>
Используйте этот код JavaScript (JQuery):
//this is the plugin Jacob Relkin suggested
(function($) {
$.fn.enter=function(callback){
this.keyup(function(e) {
var ev = e || event;
if(ev.keyCode == 13) {
callback();
return false;
}
});
};
})(jQuery);
$(document).ready(function(){
var fnDoStuff = function() {
//insert code here
//for this example I will complete Tom's task
document.location.href = $("#myButton").attr('href');
};
$('#myInput').enter(fnDoStuff);
$('#myButton').click(fnDoStuff);
});
Таким образом, вы можете прикрепить одну и ту же функцию к любому количеству элементов с любым типом взаимодействия.