ノックアウト 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);
}