Как условно запустить jQuery на основе решения на стороне сервера - PullRequest
2 голосов
/ 06 мая 2011

Я хочу запустить fadeIn, когда объект C # не является нулевым. Я полагаю, что подробности не должны иметь значения, но на всякий случай его asp.net MVC 3 - бритва.

jQuery


<script type="text/javascript">
function MessageFadeIn(){
    $('messageLbl').fadeIn('slow', function () {
        //Animation complete
    });
}
</script>

ASP.NET


@if (ViewBag.Message != null)
{
   //run jquery to fade this label in below...the label shouldnt display unless jQuery runs
   <label id="messageLbl" style="background-color:Red;color:White;">@ViewBag.Message</label>
}

Как мне это сделать?

Ответы [ 2 ]

3 голосов
/ 06 мая 2011

messageLbl существует только в том случае, если сообщение не является нулевым, поэтому оно будет работать.

jQuery не выдает ошибку, если вы пытаетесь fadeIn для несуществующего объекта.Это просто изящно терпит неудачу.

3 голосов
/ 06 мая 2011

В вашем HTML добавьте CSS display: none; к атрибуту style.Это сделает label не отображаемым по умолчанию.

@if (ViewBag.Message != null)
{
   //run jquery to fade this label in below...the label shouldnt display unless jQuery runs
   <label id="messageLbl" style="display: none; background-color:Red; color:White;">@ViewBag.Message</label>
}

и jQuery (добавьте # перед messageLbl, чтобы указать, что это Идентификатор ):

<script type="text/javascript">
$(document).ready(function {
    $('#messageLbl').fadeIn('slow', function () {
        //Animation complete
    });
});
</script>

Как правильно объяснил @ Raynos , проблем не будет, если в документе не существует #messageLbl.

A маленький jsFiddle для демонстрациикак это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...