【发布时间】:2014-02-24 08:47:38
【问题描述】:
我正在尝试使用纯 JS(即不是 JQuery)将事件从一个元素复制到另一个元素。
我遇到的错误是,当有多个事件时,最后一个事件用于两者。
有点难解释,请参考我的jsbin example,我想将#foo的mousedown和mouseup事件复制到#bar。错误是,#bar 元素上的 mouseup 和 mousedown 都会触发 mouseup 事件。
这是我目前正在使用的代码 sn-p,用于复制事件。
copyEvents(fromEl, toEl, ['onmousedown', 'onmouseup']);
function copyEvents(fromEl, toEl, events){
for (var i = 0; i < events.length; i++){
var event = events[i];
var func = fromEl[events[i]];
if(func){
if (console){ console.log('Copying event - ' + event + ' = ' + func); }
toEl[event] = function(evt){ func.call(this); };
}
}
}
【问题讨论】:
-
直接分配函数
toEl[event] = func。 jsbin.com/wowap/1/edit
标签: javascript events javascript-events