我正在使用setTimeout
功能设置display: block;
并在鼠标悬停时附加到li
。我只想删除该块并使其无效。
我的功能工作正常,但问题是如果鼠标穿过li
,它自我阻止可见。我怎么能避免这个?
我的代码是:
var thisLi;
var storedTimeoutID;
$("ul.redwood-user li,ul.user-list li").live("mouseover", function(){
thisLi = $(this);
var needShow = thisLi.children('a.copier-link');
if($(needShow).is(':hidden')){
storedTimeoutID = setTimeout(function(){
$(thisLi).children('a.copier-link').appendTo(thisLi).show();
},3000);
}
else {
storedTimeoutID = setTimeout(function(){
$(thisLi).siblings().children('a.copier-link').appendTo(thisLi).show();
},3000);
}
});
$("ul.redwood-user li,ul.user-list li").live("mouseleave", function(){
clearTimeout(storedTimeoutID);
//$('ul.redwood-user li').children('a.copier-link').hide();
$('ul.user-list li').children('a.copier-link').hide();
});
答案 0 :(得分:0)
如果使用storedTimeoutID变量解决问题,您的代码可能会开始工作。
尝试将其存储在$(this).data('storedtime')
如果问题仍然存在 - 这是你的逻辑。试着阅读throtting and debouncing,你就会明白如何解决这些问题。