Я создаю веб-сайт и использую jquery для отправки формы. Когда я нажимаю кнопку отправки, функция jquery отправляет форму в файл php. Файл php создает ошибку результата или успех. Результат отражается файлом php, а файл jquery выводит эхо с использованием метода .html()
.
Я вызываю вывод html #result.
Поэтому мой вопрос: как скрыть #result
с помощью jquery. Это должно произойти через 5 секунд.
Это отлично работает, когда #result
загружается страницей. Но не при #result
как сказано выше.
setTimeout(function(){
$('#result').slideUp(500);
}, 5000);
Вещь #result иногда динамически добавляется в DOM, а функции jQuery обычно загружаются, когда документ готов, чтобы решить эту проблему, вы должны слушать изменения DOM. Если по какой-то причине вы не используете AJAX или вам нужен другой подход, вы можете попробовать следующее:
function hideMsg(){
// Hide dynamically added div
setTimeout(function(){
$('#result').slideUp(500);
}, 5000);
}
// Listen DOM changes
$('.document').bind("DOMSubtreeModified", hideMsg);
Для того, чтобы это сработало, вы должны изменить документ документа с помощью обложки документа (там, где будет отображаться ваше сообщение).
Пример jsFiddle: http://jsfiddle.net/laelitenetwork/GUxgX/
Приветствия.
Я думаю, что самый простой способ - всегда иметь пустой результат div в вашем html и просто держать его скрытым. Таким образом, всякий раз, когда вы получаете результат от AJAX, вы можете просто изменить html, показать его, а затем снова согнуть его.
$("#result").html(AJAX RESULT);
$("#result").show();
setTimeout(function(){
$('#result').slideUp(500);
}, 5000);
Это изменит html div и покажет его. Затем спрячьте его через 5 секунд.
Вы можете использовать $.ajax с опцией обратного вызова успеха или использовать метод.done(). Пример:
$.ajax({
url:"http://someurl/",
success: function(data){ $('#result').html('success').show(); },
error: function(data){ $('#result').html('error').show(); }
}).done(function(){
setTimeout(function(){
$('#result').slideUp(500);
}, 5000);
})
setTimeout
приsuccess
setTimeout
вашей функции AJAX?