setTimeout有效,但clearTimeout错误。 pn267是Navi-Div,uk267是Navi-Div的第一级。但是在一个额外的Div。
var myTimer;
$('.pn267').hover(function() {
$('.uk267').animate({ opacity : 'show', height : 'show'}, 'fast');
});
$('.pn267').mouseout(function() {
$(this).data('myTimer', setTimeout('$(".uk267").hide()', 500));
});
$('.uk267').hover(function() {
myTimer = $(this).data('myTimer');
clearTimeout('myTimer');
});
答案 0 :(得分:1)
尝试删除引号:clearTimeout(myTimer);
您正在传递一个字符串。您需要传递与超时本身相关联的变量。
此外,我没有理由使用$().data
。只需使用myTimer = setTimeout(function(){$(".uk267").hide();}, 500);
。