【发布时间】:2011-01-21 04:56:05
【问题描述】:
我的 DOM 是这样的:
<a href='javascript:void(0)' id='link1'>Element with events bound initially</a>
<a href='javascript:void(0)' id='link2'>Element to which events are bound in future</a>
还有这个javascript:
$(function(){
$('#link1').bind('click',function(){alert('do something to make me happy');})
});
现在我想在将来的某个时间将绑定在链接 1 上的所有事件复制到链接 2。我正在按照下面的说明进行操作,如果可能或可用,请提出一些更好的方法。
var _elmEvents = $(#link1).data('events');
if (_elmEvents) {
$.each(_elmEvents, function (event, handlers) {
$.each(handlers, function (j, handler) {
$('#link2').bind(event, handler);
});
});
}
【问题讨论】:
-
对于下面询问的任何 cmets,请务必注意 jQuery 现在已更改,并且为了获取元素上的事件,您必须使用 $._data( $("#foo")[ 0],“事件”)。 (从 jQuery v2.1.4 开始工作)否则,您将从以下任何方法收到 undefined。供参考请参阅:stackoverflow.com/questions/2008592/…
标签: jquery