鼠标移入软键盘触发mouseleave或者mouseout
开发过程中这样的需求并不少,鼠标移入菜单栏弹出二级菜单,鼠标移出时隐藏(如图),当二级菜单包含输入款,联想输入时软键盘的遮挡,鼠标一旦移入就会触发mouseleave/mouseout。
利用JQuery中mouseleave/mouseout监听到的事件属性event.relatedTarget
event.relatedTarget
- relatedTarget 事件属性返回与事件的目标节点相关的节点。
- 对于
mouseover/mouseenter
事件来说,该属性是鼠标指针移到目标节点上时所离开的那个节点。 - 对于
mouseout/mouseleave
事件来说,该属性是离开目标时,鼠标指针进入的节点。 - 对于其他类型的事件来说,这个属性没有用。
所以当鼠标移动至软键盘时event.relatedTarget
为null
,移动到页面时为节点内容,此时可以通过判断该值是否存在来执行代码
container.delegate('.treeview > a', 'mouseleave', function (event) {
if (!event.relatedTarget) { return } // 关键代码
// ...逻辑内容
}