4

好,朋友们。我有一个类名“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
                }
            }
    });
4

1 回答 1

1

我认为您以错误的方式触发了单击事件(因为在您的情况下,它不是由用户触发,而是由滚动方法触发)。更改$('.more_updates').click();$('.more_updates').trigger("click");

对 .trigger() 的调用以与用户自然触发事件相同的顺序执行处理程序

在这里阅读更多

编辑/更新

停止点击事件上的事件冒泡:

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

在这里阅读更多

.show_more当没有满足结果条件时也取消绑定/死点击事件:

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

在这里阅读更多

于 2011-07-28T21:58:06.260 回答