我正在使用jQuery创建一个在线游戏。由于对较慢的计算机有很多淡入淡出效果,我做了一个设置jQuery.fx.off = true;
的选项,导致此代码出现问题:
$('<div>'+msg+'</div>').fadeOut(5000,function({$(this).remove()}).appendTo('#msg');
此代码在#msg div中显示消息,然后在5秒后消息消失。可以有许多消息,可以随时添加。如果因为fadeOut立即完成,jQuery.fx.off = true;
消息将不会显示:(当fx.off为true时,我需要的是$('#id').delay(5000).remove()
。
我在jQuery的帮助下寻找它,但没有找到。
答案 0 :(得分:2)
这可能是或者可能不是您的问题的可接受的解决方案,但您可以创建一个名为maybeFadeOut的新JQuery函数。
jQuery.fn.maybeFadeOut = function (time, fun) {
if (slowComputer) {
setTimeout(function () {
$(this).remove();
if (fun) fun(); // Optionally run the callback function.
}, time);
return $(this);
} else {
return $(this).fadeOut(5000, function () { $(this).remove; });
}
};