var messageSpan;
function createFlashMessage = function(message, type, time) {
messageSpan || (messageSpan = $("<span>").hide().appendTo("body"));
messageSpan && (messageSpan.stop().removeClass().addClass("message-mask label"));
messageSpan.html(message).addClass("label-" + (type || "success"));
var left = Math.abs($(document).width() / 2 - (messageSpan.width() + 30) / 2);
messageSpan.css({
left: left + 'px'
}).fadeIn(200, function() {
$(this).delay(time || 5000).fadeOut();
});
};
它有效,但不是我所期望的。
第一次调用这个函数是正常的,但是在它运行的时候调用它,你会发现message span会fadeOut(with the new message)又fadeIn。
这不是我想要的,我只是想要如果它在运行时被调用,只需将文本替换为新消息,并重新计算时间(新的 5s)。
如何解决?
似乎这与jquery动画计时器机制有关,有人可以帮我一个忙吗?