Вы не можете легко (и, вероятно, не должны) «копировать» событие. Что вы можете сделать, это использовать ту же функцию для обработки каждый:
var clickHandler = function() { alert('click'); };
// or just function clickHandler() { alert('click'); };
$('#firstEl').click(clickHandler);
// and later
$('#secondEl').click(clickHandler);
В качестве альтернативы вы можете на самом деле стрелять событие для первого элемента во втором обработчика:
$('#firstEl').click(function() {
alert('click');
});
$('secondEl').click(function() {
$('#firstEl').click();
});
Edit: @nickf беспокоит загрязнять глобальное пространство имен, но это почти всегда можно избежать путем оборачивания кода в объекте:
function SomeObject() {
this.clickHandler = function() { alert('click'); };
}
SomeObject.prototype.initFirstEvent = function() {
$('#firstEl').click(this.clickHandler);
};
SomeObject.prototype.initSecondEvent = function() {
$('#secondEl').click(this.clickHandler);
};
или оборачивать код в анонимную функцию и сразу же называть его:
(function() {
var clickHandler = function() { alert('click'); };
$('#firstEl').click(clickHandler);
$('#secondEl').click(clickHandler);
})();
К сожалению, ни один из ответов не показывать без использования JQuery. –
@ShaneReustle это вопрос о событиях jQuery ... – nickf
Какие в фоновом режиме работают как обычные события. Я надеялся увидеть, как это сделать, не используя jQuery для стандартных событий JS. –