У меня есть страница (назовем ее 1.php), которая загружает 2.php в div-box, используя jQuery-ajax. 2.php печатает 20 записей из моей базы данных. Когда я прокручиваю дно div-box, я хочу, чтобы он загружал следующие 20 записей. Как и Facebook, Twitter и т. Д., И т.д.
Теперь я получил это поведение, но только при загрузке 2.php на свой собственный! Но не внутри div-box.
Как мне это сделать?
Заранее спасибо!
Файл 1.php должен выводить это:
<div id="content"> </div> <script type="text/javascript"> $(document).ready(function() { // when we scroll, check the position: $(window).scroll(function() { // if at bottom, add new content: if ($(window).scrollTop() == $(document).height() - $(window).height()) { $.get("2.php",function(data) { $("#content").append(data); },'html'); } }); }); </script>
Если вы хотите отправить номер итерации на 2.php, вы можете запомнить его в некотором скрытом вводе и отправить его в качестве аргумента в $ .get ().
Надеюсь, поможет.
Вероятно, у вас есть код инициализации Javascript в 2.php, чтобы настроить обработчик событий прокрутки. Этот код инициализации не выполняется, когда вы загружаете страницу с помощью ajax и помещаете ее в div. Вам понадобится выполнить тот же код инициализации после обработки запроса Ajax.
Рассмотрите возможность использования плагина waypoints для jQuery: http://imakewebthings.github.com/jquery-waypoints/
И посмотрите пример бесконечной прокрутки: http://imakewebthings.github.com/jquery-waypoints/infinite-scroll/
Ключевым здесь является определение положения прокрутки. Правильно ли это работает?