Jquery设置超时多次
我的问题是。。。当我在链接上多次快速移动鼠标时,框就不会隐藏。看起来setTimeout被覆盖了,旧函数停止工作了——在最后的弹出窗口中,_remove()并没有发生。请帮助我,我是jQ的初学者,已经用这个隐藏和展示盒浪费了将近两天的时间。当我不使用settimeout,只使用display:none for mouseenter和mouseleave时,一切都很好。我想我只是不理解setTimeout方法 我的JS:Jquery设置超时多次,jquery,settimeout,Jquery,Settimeout,我的问题是。。。当我在链接上多次快速移动鼠标时,框就不会隐藏。看起来setTimeout被覆盖了,旧函数停止工作了——在最后的弹出窗口中,_remove()并没有发生。请帮助我,我是jQ的初学者,已经用这个隐藏和展示盒浪费了将近两天的时间。当我不使用settimeout,只使用display:none for mouseenter和mouseleave时,一切都很好。我想我只是不理解setTimeout方法 我的JS: timeout_on = {}; timeout_off = {}; $(
timeout_on = {};
timeout_off = {};
$('.flex_section').delegate('a','mouseenter mouseleave',function(e){
var a = $(this).attr('id')
if (e.type == 'mouseenter'){
timeout_on['id_'+ a] = setTimeout(function() { popup_show(a); }, 300);
} else {
timeout_off['id_'+ a] = setTimeout(function() { popup_remove(a); }, 300)
}
});
popup_show(type){
$('#someID_' + type).css('display','block')
clearTimeout(timeout_on['id_'+ type])
}
popup_remove(type){
$('#someID_' + type).css('display','none')
clearTimeout(timeout_off['id_'+ type])
}
也许你必须在设置另一个之前清除超时 鼠标输入: -添加输入的超时 鼠标左键: -删除旧超时 -为离开添加超时