js clearTimeout不起作用怎么回事,关不了那个定时器
window.onload=function(){varoSet=document.getElementsByClassName("setting")[0];varoSe...
window.onload=function(){
var oSet=document.getElementsByClassName("setting")[0];
var oSetBar=document.getElementsByClassName("stting_bar")[0];
timer=null;
oSet.onmouseover=function()
{
oSetBar.style.display='block';
};
oSet.onmouseout=function()
{
timer=setTimeout(function(){
oSetBar.style.display='none';
},300);
};
oSetBar.onmouseover=function()
{
clearTimeout(timer);
};
} 展开
var oSet=document.getElementsByClassName("setting")[0];
var oSetBar=document.getElementsByClassName("stting_bar")[0];
timer=null;
oSet.onmouseover=function()
{
oSetBar.style.display='block';
};
oSet.onmouseout=function()
{
timer=setTimeout(function(){
oSetBar.style.display='none';
},300);
};
oSetBar.onmouseover=function()
{
clearTimeout(timer);
};
} 展开
2个回答
展开全部
设置延时器之前先清除下延时器,不然每次事件触发都会多一个延时器,延时器之间互相干扰,造成紊乱。
oSet.onmouseout=function()
{
clearTimeout(timer) //在这多写一行清除代码,其它不变,下面清除延时器代码也不变
timer=setTimeout(function(){
oSetBar.style.display='none';
},3000);
};
题主试一下,应该是这个问题
oSet.onmouseout=function()
{
clearTimeout(timer) //在这多写一行清除代码,其它不变,下面清除延时器代码也不变
timer=setTimeout(function(){
oSetBar.style.display='none';
},3000);
};
题主试一下,应该是这个问题
更多追问追答
追问
加了那行代码还是不行,还是没关上
追答
不知道你说的关是咋关,只要鼠标从oSet移开,就会重新设置一个延时器
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询