Javascript 更改选项并重新初始化

Javascript 更改选项并重新初始化,javascript,jquery,Javascript,Jquery,我正在使用jscroll作为无限滚动寻呼机 $j('.frontpage').jscroll({ loadingHtml: '<div style="text-align: center;"><img width="50" src="ring-alt-1.gif" alt="Loading" /></div>', padding: 20, nextSelector: 'div.next a', contentSelector:

我正在使用
jscroll
作为无限滚动寻呼机

$j('.frontpage').jscroll({
    loadingHtml: '<div style="text-align: center;"><img width="50" src="ring-alt-1.gif" alt="Loading" /></div>',
    padding: 20,
    nextSelector: 'div.next a',
    contentSelector: '.latest-container',
    autoTrigger: true,
    autoTriggerUntil: 1
});
$j('.frontpage').jscroll({
正在加载TML:“”,
填充:20,
下一个选择器:“div.next a”,
contentSelector:“.latest container”,
自动触发:是的,
自动触发:1
});
这是一个非常简洁的插件,它使用了我的项目必备的
autoTriggerUntil
。 使用该方法可以限制自动加载内容的时间,并显示分页的“下一步”按钮

我想达到的是这一点

  • 加载第一组文章(实际上是第二页)的无限量。(已完成)
  • 第2页后,显示“全部加载”按钮。(已完成)
  • 1和2都可以工作,但我想做的是:在点击第2页上的“全部加载”后,我想破坏限制器并返回到无限视图,直到结束
  • 我基本上需要以某种方式重新初始化它。在过去的几个小时里,我一直在处理间隔和其他不好的做法,但没有结果。

    您可以使用
    $(el).off()
    方法和插件的
    回调
    选项

    在插件页面上测试

    它可以看起来像这样:

    var counter = 0;
    function scrollerCallback(){
      counter++;
      if(counter<2){return;}
        var el = $j('div.next a'); //Your 'next' selector
        el.off()
        el.on('click',function(e){
          e.preventDefault(); // we don't want the browser to go to redirect
          // Add your code to show the rest of the comments here.
      });
    }
    
    var计数器=0;
    函数scrollerCallback(){
    计数器++;
    
    如果(counter在回调函数中,请尝试使用以下方法:

    var counter = 0;
    function scrollerCallback(){
      counter++;
      if(counter<2){return;}
        var el = $j(document).find('div.next a');
        el.on('click',function(e){
    
          e.preventDefault();
          console.log("This call gets executed!");
    
          $j('.frontpage').jscroll({
            autoTrigger: false,
            autoTriggerUntil: false
          });
    
      });
    }
    
    var计数器=0;
    函数scrollerCallback(){
    计数器++;
    
    如果(计数器在挖掘后,我得出此解决方案:-

    首先,您需要添加如下回调函数:-

    $('.frontpage').jscroll({
        //your existing settings ,
        callback: function() {
          if ($('div.next a').is(":visible")) {
             $('.frontpage').jscroll.destroy();
             $('div.next a').off('click');
           }
        }
    });
    
      <script>
          var loadAllClick = function(e) {
               e.preventDefault();
               $('.frontpage').jscroll( //your settings 
                                   );
              }
      </script>
    
    第二步将onclick属性添加到加载所有a标记(仅在加载所有a标记可见的页面中)

    处理函数应该是这样的:-

    $('.frontpage').jscroll({
        //your existing settings ,
        callback: function() {
          if ($('div.next a').is(":visible")) {
             $('.frontpage').jscroll.destroy();
             $('div.next a').off('click');
           }
        }
    });
    
      <script>
          var loadAllClick = function(e) {
               e.preventDefault();
               $('.frontpage').jscroll( //your settings 
                                   );
              }
      </script>
    
    
    var loadAllClick=函数(e){
    e、 预防默认值();
    $('.frontpage').jscroll(//您的设置
    );
    }
    
    并且是一个完全工作的plunker样本
    希望这能回答您的问题,并可能对您有所帮助您好,谢谢!我试图通过在
    e.preventDefault();
    之后添加新设置(将autotriggeruntil设置为0)来重新初始化它,但它仍然显示“全部加载”,在这种状态下它会冻结。你可以查看mygadgeto.com该代码在custom_js中有注释,你可以取消注释以对其进行处理。谢谢!不幸的是,此解决方案不起作用。谢谢!它似乎在你的示例中起作用,但在网站上不起作用。这个问题让我发疯了。谢谢你,我会稍微处理一下。好的,请稍做修改,尝试模拟示例,我很高兴能为您提供帮助。再次感谢您!您可以在mygadgeto.com上看到此实况。它接收事件,但…什么都没有。我缝合了您的代码。我找到了类似$j('.frontpage').jscroll的函数({loadingHtml:'',padding:20,nextSelector:'.next',contentSelector:'.category prv',autoTrigger:true});其中是上面答案中的回调,如果与主页冲突,autoTrigger:1将其删除,但没有:/