Можно ли автоматически скрыть элемент на веб-странице через 5 секунд после загрузки формы с помощью jQuery?
В принципе, у меня есть
<div id="successMessage">Project saved successfully!</div>
что я хочу исчезнуть через 5 секунд. Я посмотрел на пользовательский интерфейс jQuery и эффект скрыть, но у меня есть небольшая проблема с тем, чтобы он работал так, как я этого хочу.
<script type="text/javascript">
$(function() {
function runEffect() {
var selectedEffect = 'blind';
var options = {};
$("#successMessage").hide(selectedEffect, options, 500);
};
$("#successMessage").click(function() {
runEffect();
return false;
});
});
</script>
Я хочу, чтобы функция щелчка была удалена и добавила метод тайм-аута, который вызывает runEffect() через 5 секунд.
много граций!
$(function() {
// setTimeout() function will be fired after page is loaded
// it will wait for 5 sec. and then will fire
// $("#successMessage").hide() function
setTimeout(function() {
$("#successMessage").hide('blind', {}, 500)
}, 5000);
});
Примечание. Чтобы функция jQuery работала внутри setTimeout, вы должны обернуть ее внутри
function() { ... }
$('#selector').delay(5000).fadeOut('slow');
Вы можете попробовать:
setTimeout(function() {
$('#successMessage').fadeOut('fast');
}, 30000); // <-- time in milliseconds
Если вы использовали это, ваш div будет скрыт после 30 секунд. Я тоже пробовал это, и это сработало для меня.
Я думаю, вы могли бы также сделать что-то вроде...
setTimeout(function(){
$(".message-class").trigger("click");
}, 5000);
и выполните ваши анимированные эффекты при нажатии на событие...
$(".message-class").click(function() {
//your event-code
});
Привет,
Вы используете setTimeout для функции runEffect:
function runEffect() {
setTimeout(function(){
var selectedEffect = 'blind';
var options = {};
$("#successMessage").hide(selectedEffect, options, 500)
}, 5000);
}
Обратите внимание, что вам может потребоваться снова отобразить текст div после его исчезновения. Таким образом, вам нужно будет также удалить, а затем повторно показать элемент в какой-то момент.
Вы можете сделать это с помощью 1 строки кода:
$('#element_id').empty().show().html(message).delay(3000).fadeOut(300);
Если вы используете jQuery, вам не нужно setTimeout, по крайней мере, не для автоопределения элемента.
Вот как вы можете установить таймаут после нажатия.
$(".selectorOnWhichEventCapture").on('click', function() {
setTimeout(function(){
$(".selector").doWhateverYouWantToDo();
}, 5000);
});
//5000 = 5sec = 5000 milisec
<script src="jquery.js"></script>
на вашей странице.