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