账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    jquery weui 滚动加载多次
    51
    0

    jquery weui 滚动加载多次

    相关代码

    <div id="refresh">

        <div id="listwrap" style="height:auto;overflow:auto;">
            <div class="weui-pull-to-refresh__layer" style="padding:25px;">
                <div class="down">下拉刷新</div>
                <div class="up">释放刷新</div>
                <div class="refresh">正在刷新</div>
            </div>
    
            <div *ngIf="!Carlist" class="nohavefee">
                <img src="../../../assets/img/nofee.png" alt="" class="nosource-img">
                暂无货源信息
            </div>
    
            <div class="weui-form-preview" id="Tolist">
               这里是循环的代码
            </div>
    
            <div class="weui-loadmore" *ngIf="loading" style="padding-bottom:30px;height:20px">
                <i class="weui-loading"></i>
                <span class="weui-loadmore__tips">正在加载</span>
            </div>
            <div class="nomore" *ngIf="undeterminedItems&&!loading&&!hasMore">
                没有更多数据
            </div>
        </div>
    
    

    js代码

    //滚动加载

    $("#listwrap").infinite().on("infinite", () => {      
      if (this.loading) return;
      this.loading = true;
      this.skip = this.Carlist.length;      
      setTimeout(() => {
        this.getdata(2);
        this.loading = false;
      }, 2000);   //模拟延迟
    });
    这样写不能滚动,改成 $(document.body).infinite().on("infinite", (),这样可以滚动加载,但是一次会请求2次,请问是什么原因啊,项目是angular4的。
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 柠萌小丸子ヾ(。) 普通会员 1楼

      在jQuery Weui中,滚动加载多次可以通过以下几种方式实现:

      1. 使用jQuery scroll() 方法:

      ```javascript $(window).scroll(function() { // 如果窗口滚动了指定距离,加载更多数据 if ($(window).scrollTop() > 100) { // 假设我们有一个数据数组,包含需要加载的数据项 var data = [ { name: 'Item 1', content: 'Item 1 content', num: 1 }, { name: 'Item 2', content: 'Item 2 content', num: 2 }, // ... ];

          // 使用Promise或async/await处理数据加载,例如以下代码
          $.ajax({
              url: 'data.json',
              method: 'GET',
              data: {
                  data: data
              },
              success: function(response) {
                  // 如果数据成功加载,更新页面内容
                  $('#content').html(response.data);
              },
              error: function(xhr, status, error) {
                  // 如果数据加载失败,显示错误信息
                  console.error('加载数据失败:', error);
              }
          });
      }
      

      }); ```

      在这个例子中,我们首先通过scroll()方法获取窗口滚动的距离,然后检查是否大于100像素。如果满足条件,我们使用jQuery的ajax()方法发送一个GET请求到数据文件的URL,请求的数据为一个包含数据项的数组。数据请求成功后,我们使用success回调函数将数据存储在页面的data元素中,并更新页面的content元素以显示这些数据。

      1. 使用jQuery scroll() 方法和onscroll()事件:

      ```javascript $(window).on('scroll', function() { // 如果窗口滚动了指定距离,加载更多数据 if ($(window).scrollTop() > 100) { // 假设我们有一个数据数组,包含需要加载的数据项 var data = [ { name: 'Item 1', content: 'Item 1 content', num: 1 }, { name: 'Item 2', content: 'Item 2 content', num: 2 }, // ... ];

          // 使用Promise或async/await处理数据加载,例如以下代码
          $.ajax({
              url: 'data.json',
              method: 'GET',
              data: {
                  data: data
              },
              success: function(response) {
                  // 如果数据成功加载,更新页面内容
                  $('#content').html(response.data);
              },
              error: function(xhr, status, error) {
                  // 如果数据加载失败,显示错误信息
                  console.error('加载数据失败:', error);
              }
          });
      }
      

      }); ```

      在这个例子中,我们通过监听scroll事件获取窗口滚动的距离,然后检查是否大于100像素。如果满足条件,我们使用scroll()方法和onscroll()事件发送一个GET请求到数据文件的URL,请求的数据为一个包含数据项的数组。数据请求成功后,我们使用success回调函数将数据存储在页面的content元素中,并使用onscroll()事件在下一次滚动时调用这个函数,以处理新的数据加载。

      1. 使用jQuery UI的slideUp()和slideDown()方法:

      ```javascript $(window).on('scroll', function() { // 如果窗口滚动了指定距离,加载更多数据 if ($(window).scrollTop() > 100) { // 假设我们有一个数据数组,包含需要加载的数据项 var data = [ { name: 'Item 1', content: 'Item 1 content', num: 1 }, { name: 'Item 2', content: 'Item 2 content', num: 2 }, // ... ];

          // 使用Promise或async/await处理数据加载,例如以下代码
          $.ajax({
              url: 'data.json',
              method: 'GET',
              data: {
                  data: data
              },
              success: function(response) {
                  // 如果数据成功加载,更新页面内容
                  $('#content').html(response.data);
              },
              error: function(xhr, status, error) {
                  // 如果数据加载失败,显示错误信息
                  console.error('加载数据失败:', error);
              }
          });
      }
      

      }); ```

      在这个例子中,我们使用jQuery UI的slideUp()和slideDown()方法来实现滚动加载。这些方法会在页面滚动一定距离时调用,例如在屏幕滚动100像素时调用slideUp()方法,以加载新的数据项;在屏幕滚动100像素以上时调用slideDown()方法,以加载下一页的数据项。每次调用slideUp()方法或slideDown()方法后,都会获取下一页的scrollHeight值,然后根据scrollHeight值来决定是否加载下一页的数据项。这样,每次滚动时都会根据需要加载不同的数据项,实现滚动加载多次的效果。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部