我有以下 Coffeescript 代码:
# Coffeescript
setMessage = (message, options = {}) ->
t = statusArea.text(message)
if options['fade']
t.addClass('yellow')
t.fadeOut 4000, ->
$(this).removeClass 'yellow'
// Javascript
setMessage = function(message, options) {
var t;
if (options == null) options = {};
t = statusArea.text(message);
if (options['fade']) {
t.addClass('yellow');
return t.fadeOut(4000, function() {
return $(this).removeClass('yellow');
});
}
};
这意味着在 LI 元素内显示状态消息。如果options['fade']
设置为任何东西,那么我调用褪色的东西。在我的程序流程中发生的第一件事是我发出一个 Ajax 调用来填充一个 SELECT 并将一个带有淡入淡出(即options['fade']
设置为true
)的“进行远程调用”消息发布到状态区域。这可能几乎是瞬时的,也可能需要一段时间。这取决于结果的大小和网络流量。填充 SELECT 后,我会发布一条“就绪”消息而不会淡出。
当响应几乎是瞬时的时,就会出现问题。在这种情况下,文本被替换为“就绪”,但动画继续,使消息淡出(即,使 LI 元素淡出)。
在开始另一个过渡之前,是否有一种可接受的方式来终止前一个过渡(如果有)?