FadeIn DIV после AJAX тянуть - PullRequest
1 голос
/ 28 июля 2011

У меня есть немного неприятного кода: P, который обновляет div с помощью AJAX, но я бы хотел увидеть эффект фейдина на нем.Дело в том, что у меня есть изображение, которое загружается и появляется в течение интервала, когда div еще не показывает никакого контента.Проанализируйте основание этого.Что я могу сделать, чтобы он исчез?

function testing(str)
{
var xmlhttp;
if (str=="")
  {
  document.getElementById("myDiv").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {

    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
$('#myDiv').html('<div style="text-align:center; padding-top:195px;"><img src="../images/loaderajax.gif" width="220" height="19" /></div>');
xmlhttp.open("GET","getuser.php?q="+str,true);
$('#myDiv').hide();
xmlhttp.send();
$('#myDiv').fadeIn();
}

Ответы [ 3 ]

2 голосов
/ 28 июля 2011

Если вы согласны с переносом возвращаемого содержимого, я бы сделал что-то подобное в ответе ajax:

$("<div/>").html(xmlhttp.responseText).appendTo("#myDiv").hide().fadeIn();

Это позволит вашему изображению отображаться и только исчезать в новом контенте.

1 голос
/ 28 июля 2011

Ваш код весь дурацкий и не в порядке с вашим вызовом ajax. Вы используете JQuery, так что воспользуйтесь этим! :)

$.ajax({
   url: 'getuser.php',
   data: str,
   beforeSend(jqXHR, settings) {
        $('#myDiv').html('<div style="text-align:center; padding-top:195px;"><img src="../images/loaderajax.gif" width="220" height="19" /></div>');
    },
    error:function(jqXHR, textStatus, errorThrown) {
        $('#myDiv').html(textStatus + ' -- ' + errorThrown);
    },
    success:function(data){
        $('#myDiv').hide().html(data).fadeIn();
    }
 });
0 голосов
/ 28 июля 2011

Поместите вызов fadein () в код, который обрабатывает ответ.

Есть ли причина, по которой вы используете jQuery для селекторов и эффектов, а не для AJAX?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...