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) //判断移入的元素既不是本身 也不是元素的子节点
在发个示例:
解决 无用评论 打赏 举报
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵