Ajax jQuery Внедрение php-контента - PullRequest
1 голос
/ 25 ноября 2011

Я использую таймер для вызова функции ajax, которая загружается в ответ с отдельной страницы php.Я хочу сделать так, чтобы контент постепенно исчезал, а затем повторялся с ответом очень часто.

Вот мой код - я могу захватить контент и заставить его изменить только затухание, частично с которым я в растерянности.

<script type="text/javascript">


window.setTimeout('runMoreCode()',100);

$(document).ready(function(){

$('#refreshRecords').fadeIn(2000);

});


function runMoreCode()
{

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("refreshRecords").innerHTML=xmlhttp.responseText;
$('#refreshRecords').fadeIn('slow');

    }
     }
 xmlhttp.open("GET","NewRecords.php",true);
xmlhttp.send();

setTimeout("runMoreCode()",6000);
 }



  </script>

Я пытался сделать это с .fadeIn, но безуспешно.Я также ссылался в последнем файле jQuery.

Спасибо

GCooper

Ответы [ 3 ]

1 голос
/ 25 ноября 2011
 $.get({
 URL: "NewRecords.php", 
    function(data){
       //add fade in effects
       $('#result').hide().HTML(data).fadeIn('slow');
    }
 });
1 голос
/ 25 ноября 2011

Вы захотите сделать это:

  1. Получить новый контент
  2. Исчезновение старого контента
  3. Замена старого контента новым контентом
  4. Fade в новом контенте

Итак, вы захотите изменить свой обработчик состояния готовности следующим образом:

// fade out old content
$('#refreshRecords').fadeOut('slow', function (){
    // now that it is gone, swap content
    $('#refreshRecords').html(xmlhttp.responseText);

    // now fade it back in
    $('#refreshRecords').fadeIn('slow');
});

И я согласен, Шомз, вы должны просто использовать функцию JQuery $.ajax().

0 голосов
/ 25 ноября 2011

Попробуйте использовать метод jQuery .ajax . Таким образом, вы можете применить любой эффект jQuery так же, как вы получите ответ (открываемая вами страница PHP). Должно сделать вашу работу намного проще, а ваш код - более читабельным. Использовать старый подход хорошо, если вы хотите остаться с JS и не тратить свои ресурсы на jQuery, но, так как вы все равно используете jQuery, почему бы не пройти весь путь с ним?

Еще одна вещь: может показаться глупым, но у вас есть div с id = "refreshRecords" и отображение не установлено, не так ли?

...