0

我有一个在每次更新后运行的函数:

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');

因此,如果频繁更新,我的行会失去原来的背景颜色。是否可以取消之前启动的动画?

谢谢,

4

1 回答 1

2

访问Jquery 完成以了解您的问题。

于 2013-05-14T07:34:54.463 回答