【问题标题】:WayPoint Refriring after div changesdiv更改后的WayPoint Refriring
【发布时间】:2013-04-15 14:15:00
【问题描述】:
<div class="content-book-row-container">
  <div id="content-book-container-inject">
   <div class="content-book-row-container">when im read im read</div>
   <div class="content-book-row-container">when im read im read</div>
   <div class="content-book-row-container">when im read im read</div>
   <div class="content-book-row-container">when im read im read</div>
  </div>
 <div id="content-book-row-footer"></div>
</div>

当页脚航点触发时,即使经过的航点行已经通过视图,它们都会被重新触发/再次触发。

如何在不调用所有以前的航点的情况下插入新的航点?

【问题讨论】:

    标签: javascript jquery infinite-scroll jquery-waypoints


    【解决方案1】:

    这是航点开发者的回复,我想我会在这里分享。

    文字对于视觉代码问题可能很棘手,但我将尝试编写您所描述的内容:

    <div class="wrapper">
      <div class="thing-container">
        <div class="injected-thing">...</div>
      </div>
      <div class="footer"></div>
    </div>
    

    你的页脚航点看起来像这样:

    $('.footer').waypoint(function(direction) {
      injectNewThing();
      $('.injected-thing').waypoint(function() {
        alert('reached');
      });
    });
    

    为了简单起见,假设 injectNewThing 只插入了一个注入的东西:

    <div class="wrapper">
      <div class="thing-container">
        <div class="injected-thing">...</div>
        <div class="injected-thing">...</div>
      </div>
      <div class="footer"></div>
    </div>
    

    问题出在下一行:

    $('.injected-thing').waypoint(function() {
      alert('reached');
    });
    

    目标,.injected-thing 包括所有这些。但你真正想要的只是新航路点。我的建议是为已经触发航点功能的“事物”添加一个类,然后针对没有该类的项目:

    $('.footer').waypoint(function(direction) {
      injectNewThing();
      $('.injected-thing').not('.reached').waypoint(function() {
        $(this).addClass('reached');
        alert('reached');
      });
    });
    

    如果这没有意义,或者我是否错误地描述了这种情况,请告诉我。

    【讨论】:

      猜你喜欢
      • 2013-12-03
      • 2011-05-14
      • 2011-04-16
      • 1970-01-01
      • 2015-07-07
      • 2011-01-12
      • 2021-06-08
      • 1970-01-01
      • 2013-08-17
      相关资源
      最近更新 更多