Javascript 通过层/分区转发鼠标事件

Javascript 通过层/分区转发鼠标事件,javascript,jquery,dom-events,Javascript,Jquery,Dom Events,有人知道jQuery或本机JavaScript通过层启用鼠标事件的方法吗?e、 g.启用div下的链接 在我的案例中无法使用的其他解决方案: ,尽管使用了不真正受支持的指针事件(编辑自2017年起,) 当您将鼠标悬停在div上时,您可以尝试使用jquery来更改div的z索引,以便在将鼠标悬停在所述div上时,链接暂时位于div上方。我做过一次。代码如下: quickDelegate = function(event, target) { var eventCopy

有人知道jQuery或本机JavaScript通过层启用鼠标事件的方法吗?e、 g.启用
div下的链接

在我的案例中无法使用的其他解决方案:

  • ,尽管使用了不真正受支持的
    指针事件(编辑自2017年起,)

当您将鼠标悬停在div上时,您可以尝试使用jquery来更改div的z索引,以便在将鼠标悬停在所述div上时,链接暂时位于div上方。

我做过一次。代码如下:

quickDelegate = function(event, target) {
            var eventCopy = document.createEvent("MouseEvents");
            eventCopy.initMouseEvent(event.type, event.bubbles, event.cancelable, event.view, event.detail,
                event.pageX || event.layerX, event.pageY || event.layerY, event.clientX, event.clientY, event.ctrlKey, event.altKey,
                event.shiftKey, event.metaKey, event.button, event.relatedTarget);
            target.dispatchEvent(eventCopy);
            // ... and in webkit I could just dispath the same event without copying it. eh.
        };

请注意,我只针对Firefox和Chrome的新版本。

现在有一个ExtJS事件转发脚本的jQuery实现:

由于链接当前已失效,我编写了一些jQuery代码来处理一个简单的情况:

  • 使用透明图像和无链接覆盖div
  • 带链接的参考底图div
  • 目标:保持覆盖可见,使链接工作,并在链接上更改光标

    方法:将鼠标位置与每个链接偏移量()进行比较

    我不处理一般的鼠标事件,我只处理我需要的特殊事件。因此,它实际上是一种变通方法,而不是最好的解决方案,它将抽象地处理每个鼠标事件,类似于在检查几何体后使用通配符的Upper quickDelegate()。此外,我只关心某些链接元素,而不关心整个分层DOM

    function mouse\u event\u over\u元素(evt,elem){
    var o=元素偏移量();
    var w=元素宽度();
    var h=元素高度();
    return evt.pageX>=o.left&&evt.pageX=o.top&&evt.pageY这里给出的是一个更大的框架的一部分,即使只是从给定的网站中找出那么多内容也是一件苦差事

    因此,我将代码重写为一个独立的jQuery插件

    这是Github存储库:


    不幸的是,我使用它的目的是——在谷歌地图上覆盖一个遮罩并没有捕获点击和拖动事件,而且鼠标光标也没有改变,这会严重降低用户体验,因此我决定将遮罩隐藏在IE和Opera这两种浏览器下。

    您可以做所有这些,也可以将此CSS用于该div:


    指针事件:无

    Internet Explorer的解决方案有点棘手,您可以找到它以供参考:IE11似乎支持此属性,这有点帮助。该页面上的
    ForwardMouseeEvents()
    的下载链接或脚本在哪里?死链接…不确定它有多有用(更新了使用wayback机器的链接)。这应该是正确的答案。我在使用覆盖在画布上的SVG时遇到了这个问题。没有任何东西,我的意思是没有任何其他东西(库、CSS或其他)可以解决这个问题,上面的这段代码是唯一可以完美工作的东西!尊敬的先生,谢谢!我还添加了&(!event.repeat)您将如何应用此功能?对于如何实现此功能,我也有点困惑。有人可以解释(或演示)它吗?将目标替换为事件。目标我收到的dispatchEvent不是函数错误。