我想要一种跨现代的浏览器方式,将一个HTML元素的鼠标事件传递给另一个HTML元素。

例如。

el1.addEventListener('mousemove', function(e) {
  el2.trigger('mousemove', e);
});

el2.addEventListener('mousemove', function(e) {
   //THIS SHOULD BE CALLED WHEN EITHER el1
});


一个jQuery的解决方案是可以的,但我更喜欢一个非jQuery的解决方案。这简单吗?

最佳答案

这是正确的代码

var el1 = document.getElementById('el1');
var el2 = document.getElementById('el2');

el1.onmousemove = function(e) {
    alert('el1 event');
    el2.onmousemove(e);
};
el2.onmousemove = function(e) {
    alert('el2 event');
};


demo

如果希望事件参数e传递到el2的事件,则很好。此更新的demo显示鼠标位置正在传递。

10-02 16:24