jquery延迟mouseOut效果?

use*_*105 2 javascript jquery

我在向mouseOut函数添加延迟时遇到问题.这是jquery代码:

$(document).ready(function() {
$('.nav').mouseover(function() {
    $('.nav').css({ left: '160px' });
});
$('.nav').mouseout(function() {
    $('.nav').delay(600).css({ left: '0' });
});
});
Run Code Online (Sandbox Code Playgroud)

我认为添加延迟部分会做到这一点......但它仍然表现得好像根本不存在.

建议?

编辑

建议的setTimeout函数工作 - 但创建了一个新问题.即使仍然在选定的'.nav'div上,此效果现在也会触发.

这是问题的一个方面:http: //jsfiddle.net/TRL4w/

j08*_*691 6

delay()函数仅适用于动画.尝试:

$('.nav').mouseout(function() {
    setTimeout(function(){$('.nav').css({left: '0'});}, 600)
});
Run Code Online (Sandbox Code Playgroud)

来自.delay()文档:

.delay()方法最适合延迟排队的jQuery效果.因为它是有限的 - 例如,它没有提供取消延迟的方法 - .delay()不能替代JavaScript的本机setTimeout函数,这可能更适合某些用例.