mouseleave事件在鼠标快速移动的情况下导致执行异常,寻找解决思路?

需求描述:如题,当鼠标mouseover指定容器时,程序append一个div到body中,当鼠标mouseleave的时候,程序把这个div删除。

异常情况:当我们快速移动鼠标时,mouseleave事件会执行异常,新建的元素没有删除,始终出现在屏幕上,比较困惑的是,这个没有被删除的元素,是mouseleave中没有删除呢,还是mouseleave事件执行后,又新建的

理想情况:鼠标离开后,保证新建的div被删除

伪代码如下:

$(element).mouseover(function(e){
    $('body').append(div);
})
$(element).mouseleave(function(e){
    $(div).remove();
})


BIG阳
浏览 1185回答 1
1回答

慕的地8271018

<body>&nbsp; &nbsp; <p id="p">testEl</p>&nbsp; &nbsp; <script>&nbsp; &nbsp; &nbsp; &nbsp; var element = $("#p")&nbsp; &nbsp; &nbsp; &nbsp; var div = document.createElement("div");&nbsp; &nbsp; &nbsp; &nbsp; $(element).mouseover(function(e){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $('body').append(div);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(1)&nbsp; &nbsp; &nbsp; &nbsp; })&nbsp; &nbsp; &nbsp; &nbsp; $(element).mouseleave(function(e){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $(div).remove();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(2)&nbsp; &nbsp; &nbsp; &nbsp; })&nbsp; &nbsp; </script></body>按照这样尝试、没遇到题主说的问题啊、1和2都是交叉打印的、如何还原场景呢
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript