向下滚动新的ajax请求

时间:2013-09-24 12:43:56

标签: javascript

这是我的jQuery

$('#banner').click(function (){
            $('#dropdown_c').toggle();

            //ajax request
        function recall(){ setTimeout(function () {  

                xmlhttp = new XMLHttpRequest();

                xmlhttp.open("GET", "http://localhost/ajax/not_data.php", true);

                xmlhttp.onreadystatechange = function () {

                        if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {

                                document.getElementById('dropdown_c').innerHTML = xmlhttp.responseText;
                            }       
                    }

                xmlhttp.send();
                document.getElementById('dropdown_c').innerHTML = "<img class='non_auto' id='ajax_loading' src='img/ajax_loading.gif'></img>";

                recall();

                }, 2000);
            }; 

                recall();

                function yHandler () {

当用户滚动div ...

            var dropdown_c = document.getElementById('dropdown_c');
            var contentHeight = dropdown_c.offsetHeight;
            var yOffset = window.pageYOffset;
            var y = yOffset + window.innerHeight;

            if(y >= contentHeight) {
                //new ajax request
                }
            }
            var dropdown_c = document.getElementById('dropdown_c');
            dropdown_c.onscroll  = yHandler;
    });

每次用户向下滚动时如何调用新的ajax请求?

这是not_data.php

<?php

$name_query=mysql_query("SELECT name FROM  names);
        while($run_query = mysql_fetch_assoc($name_query)) {
            $name = $run_query['name'];

            echo $name;
}
?>

我想调用一个新的ajax请求,并在每次用户向下滚动时从表names获取一个新名称

1 个答案:

答案 0 :(得分:1)

您可以使用.scroll来实现此目的。每次滚动事件后都会调用它。

  $(window).scroll(function() {
     $.ajax({
        type: "GET",
        url: "not_data.php",
        data: dataString,
        success: function(res){
            alert(name);
        }
    });
  });