3

ノックアウト observablearray にバインドされているアイテムが更新されたときに、要素に JQuery UI ハイライト効果を適用しようとしています。

ハイライト効果が適用されますが、使用されるハイライト色は常に要素の現在の背景色です。{ color: 'XXXXXXX' } オプションを使用して強調表示の色を指定しても。

何が起こっているのでしょうか?

ありがとう、スティーブ。

以下のコード: 要素は span.tag です

<div class="row">
    <div class="span12">
        <div class="tagsinput favs span12" style="height: 100%;" data-bind="foreach: favs, visible: favs().length > 0">
            <span class="tag" data-bind="css: $root.selectedFav() == userPrefID() ? 'selected-fav' : '', attr: { id: 'fav_' + userPrefID() }">
                <span data-bind="text: name, click: $root.loadFav.bind($data)"></span>
                <a class="tagsinput-fav-link"><i class="icon-trash" data-bind="click: $root.delFav.bind($data)"></i></a>
                <a class="tagsinput-fav-link-two" data-bind="visible: $root.selectedFav() == userPrefID()"><i class="icon-save" data-bind="    click: $root.saveFav.bind($data)""></i></a>
            </span>
        </div>
    </div>
</div>

// これは、ajax を介して保存し、完了時に要素を強調表示するコードです。

        $.getJSON('@Url.Action("SaveFav","User")', { id: item.userPrefID(), fav: window.JSON.stringify(fav) }, function (result) {
            var savedFav = ko.utils.arrayFirst(self.favs(), function (aFav) {
                return aFav.userPrefID() == result.userPrefID; // <-- is this the desired fav?
            });
            // Fav found?
            if (savedFav) {
                // Update the fav!
                savedFav.value(result.value);                         
            }
        }).done(function () {
            var elementID = "#fav_" + item.userPrefID();
            highlightElement(elementID);
        });

// 要素をハイライトする関数

function highlightElement(element) {
    $(element).effect("highlight", {}, 1500);
}
4

1 に答える 1