我有一个在每次更新后运行的函数:
window.ticker.client.updateData =
function (data) {
try {
if (viewModelOrder.selectedInstrument == data.symbol) {
viewModelOrder.updatePrice(data.ask.toFixed(5), data.bid.toFixed(5));
}
var tr = $("#marketWatchGrid").find("tr:contains('" + data.symbol + "')");
var bg = '';
if (data.direction == 1) {
bg = '154,240,117';
}
else {
bg = '255,148,148';
}
tr.find("td:nth-child(2)").html(data.ask.toFixed(5));
tr.find("td:nth-child(3)").html(data.bid.toFixed(5));
var current = tr.css('backgroundColor');
tr.animate({ backgroundColor: 'rgb(' + bg + ')' }, 150)
.animate({ backgroundColor: current }, 150)
} catch (e) {
//console.log("exception: " + e.message);
}
}
如果更新过于频繁,那么下一行自然会在上一次调用开始的动画期间获取 tr 的背景颜色:
var current = tr.css('backgroundColor');
因此,如果频繁更新,我的行会失去原来的背景颜色。是否可以取消之前启动的动画?
谢谢,