2015-02-10 4 views
0

мой вопрос очень прост. Я разработал код, как показано ниже, для показа загружаемого изображения при отправке формы. Загрузочное изображение можно отобразить правильно. Однако он не может спрятаться автоматически после возврата результата. Могу ли я узнать, что такое ошибка?Ajax loading error error

HTML

<div id="loading"></div> 

Ajax

function email_subscribe(){ 
    $('#loading').html('<img src="loading.gif"> loading...'); 
    $.ajax({ 
     type: 'post', 
     url: 'index.php?subscribe', 
     dataType: 'html', 
     data:$("#subscribe").serialize(), 
     success: function (html) { 
      $('#loading').html(); 
      eval(html); 
    }}); 
} 

+1

Что вы подразумеваете под 'он не может скрыть после возвращения результата?? Кажется, вы используете getter 'html()', но не назначаете его переменной. Ваше использование 'eval()' также вызывает у меня озабоченность. –

+0

Кажется, вы пытаетесь удалить загружаемый html, но почему бы не просто '.hide()' it? – jungy

ответ

3

Вы просто вызов .html() метод без каких-либо параметров (который служит в качестве добытчика). Чтобы достичь того, что вы ищете здесь, вам нужно как минимум пройти в виде пустой строки до set и перезаписать существующий контент.

$('#loading').html(''); 
+0

Решил мою проблему. И объяснение понятно! –

0

Я также думаю, что вы не должны использовать Eval ....

... да и называть .html() с аргументом, как:

$('#loading').html("&nbsp;"); 

или

$('#loading').html(" ");