2013-08-05 2 views
0

У меня есть меню css для уведомлений. Это все в div. Внутри этого div у меня есть ссылка, которая при зависании отображает уведомления в меню, таком как мода.Назначить класс css в jQuery на основе списка брандов C#

Я хочу изменить цвет фона div, если есть уведомления и удалить цвет фона, если ссылка была зависшей. Я хочу использовать свойство count переменной C# для бритвы с именем «templates», в которой хранятся шаблоны уведомлений, которые будут отображаться в меню.

Я хочу сделать что-то подобное в JavaScript/JQuery

$(document).ready(function()) 
{ 
    if(@templates.Count > 0) 
    { 
    $('#notificationsMenuItem').addClass('notifNotSeen'); 
    } 
} 

function changeBackground() { 
    var menu = $('#notificationsMenuItem'); 

    if(menu.hasClass('notifNotSeen')) 
     menu.removeClass('notifNotSeen'); 
} 

Вот это DIV, который содержит структуру меню:

<div id="notificationsMenuItem" class="divList"> 
    <a href="#" style="font-weight: normal; padding: 0;" onmousedown="changeBackground()">Notifications</a> 
........ 


</div> 

Возможно ли это? Какие еще способы сделать это?

+0

Должно быть возможно в значительной степени, как вы его там написали. Он выведет «динамический» javascript, который, конечно, если посмотреть в файле, будет выглядеть немного глупо, поскольку там он выглядит как жестко закодированные значения, например. 'if (5> 0) {...}' - но он все равно будет работать. – UweB

+0

@UweB, моя проблема в том, что это не работает, поскольку я не могу присвоить значение переменной стороне сервера C# функции javascript jQuery. –

+0

Хорошо - что такое @templates? Потому что, если это переменная C# на вашей странице cshtml, это должно быть хорошо, так как @ templates.Count будет оцениваться сервером и просто записываться в результирующую функцию HTML/JavaScript, а не передавать ее функции - или иначе: выход сервера изменит тело вашей функции JavaScript, а не передаст значение статической функции. – UweB

ответ

0

Вы можете добавить скрытое поле ввода с графом:

@Html.Hidden("templatesCount", @templates.Count, new {@id="templatesCount"}) 

И прочитать значение в JQuery:

$('#templatesCount').val(); 

Таким образом, вы можете использовать JS в виде отдельного файла ,

+0

к сожалению это не работает. Я так понимаю, потому что я не делаю сообщение, поэтому значение скрытого поля, похоже, не установлено. Я также не могу использовать Chrome devTools для отладки javascript, так как я использую частичное представление для этого меню. –

Смежные вопросы