我不知道如何解释,所以我将首先展示我的代码。 所以我有类似的东西:
//array of all div's positions
var zone = [];
//add a div's position in the array
function myFunction1(){
var pos = getPos(div);
zone[zone.length] = pos;
}
//when the mouse isn't in the zone of a div, delete all zones
function myEventFunction(e){
var posMouse = xx; //define the pos of the mouse
for(i=0: i<zone.length; i++){
if(posMouse !== zone[i]){
zone = [];
}
}
}
当然,它只是我代码的简化版本。
功能有效,但存在&#34;计时&#34;的问题。 当我的鼠标离开区域时,它立即进入另一个启动&#34; myFunction1&#34;的div。 功能&#34; myEventFunction&#34;没有时间删除zone []中的所有数据,因为区域[]中有新数据,所以&#34; if(posMouse!== zone [i])&#34;是假而不是真实。
我想我需要使用封闭,但我不知道如何做到这一点。 我不确定我的问题是否可以理解,但有人可以帮助我吗?
答案 0 :(得分:0)
我想你可能想要查看onmouseleave
事件而不是onmousemove
,当你在div之间进行时只会触发一次。