<li>
私はそれらのいくつかが通常の状態にあり、いくつかの部分が強調表示された状態にある(「hasNews」クラスを持っている)多くの要素を持っています:
<ul class="companies">
@foreach (var item in Model)
{
<li id='company_@(item.Id)' data-id='@item.Id' @{if (item.hasNews) { <text>class="hasNews"</text>} } >
<a>@item.Name</a>
</li>
}
</ul>
いずれかをクリックしたときに<li>
、そのIDをコントローラーに送信し、その会社を既読として設定し、コールバックがtrueの場合は、その会社から「hasNews」クラスを削除したいと思います<li>
。これを行うためのメソッドがコントローラーにあります。<li>
しかし、コールバックがtrueの場合、クリックされたアイテムから「hasNews」クラスを削除するには、jqueryのヘルプが必要です。次のコードを使用して、コントローラーにリクエストを送信し、操作を実行して、falseまたはtrueを返します。しかし、その<li>
項目はまだ強調表示されています:
$('.companies li ').click(function (e) {
url = '@Url.Action("SetCompanyNewsAsRead", "Company")';
var data = { id: $(this).attr('data-id') };
$.post(url, data, function (result) {
if (result.success) {
$(this).removeClass('hasNews'); //this does not remove "hasNews" class.
}
});
});
この問題を解決するにはどうすればよいですか?
編集:
追加したい:<li>
アイテムの1つは「現在」です。私はこれをしました:
$('#company_' + currentItemId).addClass('current');
この作品。これにより、「hasNews」クラスの削除を防ぐことができますか?