Перепроверять что-то в jQuery? - PullRequest
1 голос
/ 07 ноября 2010

В основном у меня есть функция jQuery, которая проверяет, находится ли пользователь в нижней части страницы, и загружает больше материала. Когда документ загружается, это выполняется, чтобы проверить.

<script type="text/javascript">
$(document).ready(function() {

    var number = 5;
    offset = 0;

    $(window).scroll(function() {
        if($(window).scrollTop() + $(window).height() > $(document).height() - 10) {

            $(".empty-div").append().load('<?php bloginfo('template_url'); ?>/ajax.php?offset='+offset+number, function() {

                    var offset = offset+number;             

                    setTimeout(function(){ console.log('after', $(document).height()); }, 0);
                    setTimeout(function(){ console.log('after', $(window).height()); }, 0);



            });     

        }

    });

});
</script>

H / e всякий раз, когда я достигаю нижней части страницы на втором ходу, функция загрузки не восстанавливается. Кстати, работает с первого раза. Есть идеи, как это исправить? Консольный материал предназначен для пересчета высоты, на случай, если это именно то, что его вызывает.

Ответы [ 2 ]

3 голосов
/ 07 ноября 2010

Делая это:

var offset = offset+number; 

Вы создаете новую локальную offset переменную, но не обновляете исходную

offset = 0;

объявлено перед функцией, поэтому: ?offset='+offset+number всегда использует offset в качестве 0, поскольку оно никогда не обновляется. Просто удалите var, вот так:

offset = offset+number; 

Для чистоты также добавьте var к исходному объявлению или используйте запятую для множественного объявления, например:

var number = 5, offset = 0;
1 голос
/ 07 ноября 2010
  1. вы используете load () для $ (". Empty-div"), это не добавит больше содержимого, оно заменит содержимое (если ответ не изменится, вы будетене вижу изменений)

    Лучше должно быть что-то вроде

    $('<div/>').appendTo(".empty-div").load(/*****/)
    
  2. возможно, есть также проблема с DOCTYPE.Журнал

    $(window).scrollTop(),  $(window).height() and  $(document).height() 
    

    возможно, он отличается между стандартами - и режимом причуд.

...