#javascript #jquery
#javascript #jquery
Вопрос:
При отправке я хотел бы добавить класс .loading в #results до тех пор, пока данные не будут возвращены, поэтому класс будет удален.
Как меняется код?
$(function(){
$("#myform").submit(function(event){
event.preventDefault();
$.post('mail.php', $("#myform").serialize(), function(data) {
$('#results').hide().html(data).fadeIn('slow').delay(2000).hide(1);
});
});
});
Ответ №1:
Если я вас правильно понял:
$(function(){
$("#myform").submit(function(event){
event.preventDefault();
// Add the class here:
$("#results")
.show()
.addClass("loading");
$.post('mail.php', $("#myform").serialize(), function(data) {
$('#results')
.hide()
.html(data)
.fadeIn('slow')
.delay(2000)
.hide(1)
.removeClass("loading"); // Remove the class here.
});
});
});
Комментарии:
1. Вы правы, я отредактировал приведенный выше фрагмент, чтобы теперь он работал. Кроме того, вот скрипка. jsfiddle.net/fkw5s/6
2. Теперь я не могу получить никакого возврата. Класс загрузки теперь появляется навсегда. Ранее, даже если класс загрузки работал в первый раз, он возвращал данные. В mail.php существует простая
mail()
функция освещения.3. Есть ли ошибка от ajax? В скрипке я изменил значение
"mail.php"
на an""
, чтобы оно отправляло сообщение самому себе (потому что mail.php не существует в этом контексте).4. Нет, ошибки нет, потому что я проверил ее другими методами. Кажется, все работает.
5. Сработало. Я перезапустил Firefox и работал. Иногда я не понимаю, как компьютеры «думают». Спасибо. Принято и 1