吉野与猫 2021-05-18 09:46 采纳率: 0%
浏览 14

mouse over关键字使用后出现的报错 求教大佬是什么意思?

InvalidArgumentException: Message: Expected 'id' mouse to be mapped to InputState whose subtype is undefined, got: pointerMove

  • 写回答

1条回答 默认 最新

  • 无限虚空 2024-06-18 13:14
    关注

    mouseover和mouseout引发的BUG原由
    当给一个元素添加mouseover或mouseout事件,这个元素还有子元素。

    由于子元素的事件冒泡,鼠标移入或移出子元素都会触发事件。

    解决的方法:根据event对象判断是否为子元素

    JQuery解决方法
    JQuery可以用mouseenter代替mouseover,mouseleave代替mouseout。

    还可以用hover()方法。

    JavaScript原生解决方法
    原生的方法解决就需要了解一下relatedTarget、fromElement、toElement这三个event返回的对象。

    relatedTarget是w3c标准的ie没有/fromElement在ie时mouseover使用/toElement在ie时mouseout上使用

    写一下简单的思路:

    鼠标移入的时候判断一下:移入的元素既不是本身,也不是元素的子节点,然后触发事件。

    写了两个方法:

    relatedTarget()  //返回相关元素的节点

    checkFather(obj,relatedTarget)  //判断移入的元素既不是本身 也不是元素的子节点

    在发个示例:

    评论

报告相同问题?