Автоматический запуск ссылки «загрузить больше» с помощью jquery до того, как пользователь достигнет дна.Как? - PullRequest
4 голосов
/ 29 июля 2011

Хорошо, ребята.У меня есть ссылка с именем класса "more_updates".Я хочу, чтобы ссылка «загрузить больше» автоматически запускалась каждый раз, когда пользователь достигает 80% страницы.

Я перечисляю 50 продуктов.Каждый ряд содержит 5 товаров с изображениями.Внизу у меня есть еще ссылка.Если пользователь достигает 7-й или 8-й строки, ссылка «загрузить больше» должна запускаться автоматически.Это код, который я использую.Но это загружает больше продуктов.Пожалуйста, скажите мне, что не так в этом коде.Спасибо

<!-- language: lang-js -->
    $(window).scroll(function(){
            if  ($(window).scrollTop() >= ($(document).height() / 2) - $(window).height()){
                if (!flag) {           
                      // if is not loading data, start the call
                      $('.more_updates').click();      // to invoke the click event of loading updates
                }
            }
    });

1 Ответ

1 голос
/ 29 июля 2011

Я думаю, что вы вызываете событие нажатия неправильно (потому что в вашем случае оно вызывается не пользователем, а методом прокрутки). Измените $('.more_updates').click(); на $('.more_updates').trigger("click");

Вызов .trigger () выполняет обработчики в том же порядке, в котором они было бы, если бы событие было вызвано естественным образом пользователем

подробнее здесь

EDIT / UPDATE

Остановите всплывающее событие при вашем клике:

...
$('.more_updates').live("click", function (e) {
e.stopImmediatePropagation()
...

подробнее здесь

Также отменяется привязка / умереть событие .show_more, если не найдено ни одного результата:

else { 
  $(".morebox").html('No More Results.'); // no results
  $('.more_updates').die("click");
}

подробнее здесь

...