У меня есть форма, которая хранит данные пользователя через вызов ajax.jQuery fadeIn div после перезагрузки страницы
При успешном завершении я обычно сбрасываю div с успешным сообщением. Однако я хочу перезагрузить страницу, чтобы обновить страницу, а затем исчезнуть в сообщении об успешном завершении.
Я использовал .load(), чтобы обновить div, а затем переключить форму, чтобы скрыть себя и т. Д. Но .load приводил к тому, что некоторые другие скрипты js не работали после того, как они были вызваны и т. Д., Так что теперь я собираюсь просто перезагрузить страницу.
Однако я хочу показать сообщение об успешном завершении после того, как страница была перезагружена.
Это пример:
if (check) {
$.ajax({
type: "POST",
url: "process/updateuserpref.php",
data: $('.updatepref').serialize(),
dataType: "json",
success: function(response){
if (response.updatePrefSuccess) {
location.reload();
$('#successdisplay').fadeIn(1000);
$('#successdisplay').delay(2500).fadeOut(400);
}
}
});
}
Я знаю, что, очевидно, в
$('#successdisplay').fadeIn(1000);
$('#successdisplay').delay(2500).fadeOut(400);
Doesnt в настоящее время работают, но любая помощь в том, как я могу делать то, что я хочу?
Спасибо, Крэйг.
когда вы делаете 'location.reload();' вы влипли. Вы либо находитесь в бесконечном цикле перезагрузок, либо если этот код инициируется событием, все потеряно, и сегодня не будет выцветания. – adeneo
Используйте делегирование событий для ваших 'других js-скриптов' или повторно инициализируйте их после загрузки содержимого AJAX. Это будет полезное упражнение в изучении асинхронного кода. Вероятно, проблема связана с тем, что эти сценарии связаны с элементами, которые больше не существуют при обновлении HTML. – Jasper
@adeneo Да, я бы порекомендовал не использовать 'window.location.reload()', но вместо этого изменил местоположение на нечто подобное с параметром строки запроса, чтобы указать, что что-то должно произойти (например, fade-in a element). – Jasper