一个页面里有两个选项卡,其中一个选项卡内有瀑布流,进行切换时,后面的瀑布流不加载了

1.页面有两个选项卡里,其中选项卡一内有瀑布流效果,当使用$(window).scroll()函数加载瀑布流时,若瀑布流未加载玩,切换到选项卡二后,再切换回选项卡一,$(window).scroll()函数不在执行,后面的瀑布流不加载啦

2.下面时代码:
下面的代码的作用:当

//当滚动条下拉时执行
$(window).scroll(function () {
        if (isScrollLoad && !$(".scan-more").hasClass("noMore")) {
            var scrollTop = $(window).scrollTop();
            var offsetHeight = document.body.scrollHeight;
            var clientHeight = window.screen.availHeight;
            if (scrollTop >= offsetHeight - clientHeight - 100) {
                options.jsonData.pageIndex = loadNum;
                parentNode.flow(options.type, options.url, options.jsonData, load);//调用加载瀑布流的函数
                loadNum++;
                $(window).scrollTop(scrollTop);
            }
        }
        if (loadNum == 4) {//只能滚动加载两次
            $(".scan-more").removeClass("h");
            isScrollLoad = false;
            //loadNum++;
        } else if (isScrollLoad && loadNum > 4) {
            ss();
        }
    });
    
 /*
 Ajax加载事件
 type【加载类型】:1:瀑布流排版,2:瀑布流加载数据,3:普通等高加载数据
 options【json,排版时选填,加载数据时必填】
 url:加载地址
 data:参数
 callback:数据加载成功后的回调函数
 */
var allHeight = [];//定义一个数组存储所有列的高度
var getStartNum = 0;//存储开始请求数据条数的位置

//这是加载瀑布流的函数 内容太多,省略了
$.fn.flow = function (type, url, options, callback) {
   ...........
}

3.当刚进入这个页面时默认进入选项卡一,这时候下拉滚动条,执行$(window).scroll(funcion(){......})内的内容,调用加载瀑布流函数,当瀑布流还未加载完时,这时候切换到选项卡二里面,当再从选项卡二切换回选项卡一时,再下拉滚动条一时,$(window).scoll(function(){......})不再执行了,导致它里面加载瀑布流的函数不再调用啦,后面的瀑布流不再不再加载了。

4.图片描述

5.类似上面这样,当我刚进入这个页面,在我的发布,当下拉时,就执行$(window).scroll(function(){})事件,加载后面的瀑布流,如果刚进入这个页面,就点击草稿箱这个选项卡,再切换回我的发布时,$(window).scroll(function(){})就不再执行了

阅读 2.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进