2013-12-05 3 views
0

Я отправляю форму на сервер, и если все в порядке, я хочу показать какое-то подтверждение для пользователя.Как показать абзац только на несколько секунд, а затем скрыть его с помощью jQuery

Проблема заключается в том, что я использую ASP.NET MVC 4, где я могу это сделать:

@if (ViewBag.ConfirmMessage != null) 
{ 
<p>@ViewBag.ConfirmNMessage</p> 
} 

, но таким образом, что сообщения остается, которые я думаю, будет запутанным для пользователя. Если я использую что-то вроде:

@if (ViewBag.ConfirmMessage != null) 
{ 
    <script> 
     alert("Some message"); 
    </script> 
} 

но первых alert работ по-разному показывать абзац, а также ViewBag.ConfirmMessage уже есть сообщение, что я хочу, чтобы отобразить и в будущем он будет более ремонтопригоден, если я показываю сообщение от ViewBag.ConfirmMessage, чем писать какое-либо сообщение во всех представлениях.

Так что мой вопрос в том, как я могу скрыть <p>@ViewBag.ConfirmNMessage</p> после X секунд, если он показан?

ответ

1

Вы можете использовать setTimeout()

function fun() { 
    $('p').hide(); //better to have id selector 
} 

var inter = setTimeout(fun, 1000); //1000 represents 1 second 

Кроме простой способ использования fadeOut() без использования setTimeout()

$("p").fadeOut(1000, "linear", complete); //better to have id selector 
+0

Не могли бы вы объяснить мне, в чем смысл «var inter = ..»? и что означает 'var inter'? – Leron

+0

@Leron inter содержит функцию setTimeout(). Таким образом, вы можете очистить/приостановить использование этой переменной, как 'clearTimeout (inter);' – Praveen

+0

Soryy Я новичок JS, но я действительно хочу понять - у меня есть функция, которая содержит логику, но как именно функция запускается? Я думал, что мне нужно связать его с каким-то событием ... – Leron

5
@if (ViewBag.ConfirmMessage != null) 
{ 
<p id="confirmMsg">@ViewBag.ConfirmNMessage</p> 
} 

И

@if (ViewBag.ConfirmMessage != null) 
{ 
    <script> 
    setTimeout(function() { 

     $('#confirmMsg').hide(); 
    }, X * 1000); 
    </script> 
} 
0

HTML

<div class="wrap"> 
    <p>Fade this out</p> 
    </div> 

Jquery

$(document).ready(function() { 
    setTimeout(function() { 
     $('.wrap p').fadeOut(); 
}, 400); 
}); 

DEMO

+0

Очень приятно, спасибо, это именно то, что я хотел! – Leron

+1

Все p-метки? Зачем? –

+0

Все ответы хорошие, но я могу принять только один. Sowmya прилагал усилия, чтобы предоставить демо, и мне нравится 'fadeOut' больше, чем' hide'. Я заменил 'p' некоторым селектором классов в реальном коде, мало кто уже заметил, что использование' 'p'' напрямую не является хорошим подходом. – Leron

0
@if (ViewBag.ConfirmMessage != null) 
{ 
<p id="myMessage">@ViewBag.ConfirmNMessage</p> 
<script> 
$(function() { 
    setTimeout(function() { 
     $("#myMessage").hide(); 
    }, 5000); 
}); 
</script> 
} 
Смежные вопросы