您不能輕易(也可能不應該)「複製」事件。你可以做的是使用相同的函數來處理每個:
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();
});
編輯:@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。 – 2012-05-04 09:12:01
@ShaneReustle這是一個關於jQuery事件的問題... – nickf 2012-05-06 19:21:00
在後臺工作就像普通事件一樣。我希望看到如何在標準JS事件上使用jQuery。 – 2012-05-26 03:28:08