为什么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/