为什么delay()在这里工作:
$('#tipper').mouSEOut(function() { $('#tip').delay(800).fadeOut(100); });
但这没有推迟:
$('#tipper').mouSEOut(function() { $('#tip').delay(800).css('display','none'); });
//编辑 – 这里是一个工作的解决方案
$('#tipper').mouseleave(function() { setTimeout( function(){ $('#tip').css('display','none'); },800); });
解决方法
delay()
使用动画(fx)
queue.更改css属性不通过该机制工作,因此不受delay指令的影响。
有一个解决方法 – 您可以注入属性更改作为排队的操作,如下所示:
$('#tip') .delay(800) .queue(function (next) { $(this).css('display','none'); next(); });
另外,你应该使用.hide()而不是.css(‘display’,’none’)。
这里有一个工作示例:http://jsfiddle.net/redler/DgL3m/