2012-06-25 4 views
1

Я пытаюсь добавить бесконечную функциональность прокрутки на страницу, используя код, заданный в этом вопросе, Check if a user has scrolled to the bottom, но ничего не происходит, когда я просматриваю нижнюю часть страницы. Вот код, так что вы не должны следовать по ссылке:Бесконечный прокрутка javascript не работает

<script type="text/javascript"> 
alert("popup!");  
$(window).scroll(function() { 
    if($(window).scrollTop() + $(window).height() > $(document).height() - 100) { 
     alert("bottom!"); 
    } 
}); 
</script> 

Я добавил в первой боевой готовности, чтобы проверить, если это был просто мой браузер блокирует уведомления, но она показывает отлично. На сервере также установлен JQuery 1.7.2 min, а страница - это каменная кладка, поэтому я не думаю, что это проблема с установкой.

+0

Это нормально работает здесь http://jsfiddle.net/joycse06/8tQYX/ –

+0

попробуйте поставить 'console.log ($ (window) .height() + "<-current sctoll | target ->" + ($ (document) .height() - 100)) 'в этом цикле, откройте его в инспекторе элементов chrome и right click ->, откройте вкладку консоли, которая сообщит вам то, что значения представляют собой каждый цикл, должны помочь вам диагностировать проблему. Если вы не получили никаких следов, мероприятие не стреляет. – Waltzy

+0

Кажется, все нормально работает для меня. http://jsfiddle.net/FLarv/ – Waltzy

ответ

1

После Вашего ответа на мой комментарий, вы сказали, что вы получаете

In the console tab I'm getting Uncaught ReferenceError: $ is not defined

I «Предполагая, что вы включили jQuery в заголовок своей страницы (это должно быть в <head> каждой страницы)

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 

Это скажет вам, если JQuery имеет успешно загружены на вашей странице

if (typeof jQuery != 'undefined') { 
    alert("jQuery library is loaded!"); 
}else{ 
    alert("jQuery library is not found!"); 
} 

Оригинальный комментарий:

попробовать положить console.log($(window).height()+"<-current sctoll | target->"+($(document).height() - 100)) в этом цикле, откройте его в хроме и правой кнопкой мыши -> элемент инспектора , откройте вкладку консоли, которая сообщит вам, какие значения представляют собой каждый цикл, поможет вам диагностировать проблему. Если вы не получили никаких следов, событие не срабатывает

+0

По какой-то причине я попытался добавить это к голове, и это не сработало, я попытался добавить его прямо над моим скриптом в теле, и это не сработало, я добавил, что скрипт прокрутки и jquery включены в нижний колонтитул и это не сработало, тогда я положил обратно в тело, где я их, и теперь он работает отлично. Jquery включает в тело теперь, когда я работаю, это точно в том же самом месте, в котором я был в первый раз, когда я его пробовал, и у меня нет ни одного над ним нигде, но внезапно это работает. – jaimerump

+0

, тогда вы можете поместить функцию JQuery внутри этой функции. 'window.onload = function() {/ * мой код или функции вызывает здесь * /}', чтобы убедиться, что все содержимое загружено, прежде чем пытаться выполнить любой скрипт. – Waltzy

1

Возможно событие прокрутки стрельбы правильно с синтаксисом у вас есть там, попробуйте следующее:

$(window).on('scroll', function() { 
    if ($(window).height() + $(window).scrollTop() >= $(document).height() - 100) { 
    alert('do stuff'); 
    } 
}); 
+0

Я скопировал это, и он все еще не появляется. Я попытался помещать заголовки в заголовочный файл, в нижнем колонтитуле с другим javascript, ничего. – jaimerump

+1

Тогда это не прокручиваемый код, который сломан. Если вы используете Chrome, заведите инспектор и щелкните вкладку CONSOLE. Я думаю, что ваш javascript разбивается где-то перед окном прокрутки кода, что означает, что ваш код прокрутки окна никогда не будет срабатывать. Найдите свои ошибки JavaScript в runtime, исправьте их и повторите попытку. – Lowkase

Смежные вопросы