javascript - 使 jQuery Waypoints 无法与 JavaScript 创建的内容很好地配合

标签 javascript jquery dom-manipulation jquery-waypoints

所以,我一直在为我目前正在从事的项目摆弄 jQuery Waypoints。 我过去使用过它,没有遇到任何问题,但对于这个特定的项目,我似乎无法让它工作。这次的不同之处在于,所有内容都注入(inject)了 JavaScript,尽管当您使用 $.waypoints('refresh'); 时这不应该成为问题。简单地更新航路点位置。

由于内容是动态创建的,我引入了一个计时器来确保在脚本初始化之前加载内容。

$(document).ready(function(){

    setTimeout(function(){

        waypoints();
        $.waypoints('refresh');

    }, 2000);

});

function waypoints() {

    alert('jQuery Waypoint has initialized');
    //ep.listener.waypoints()

    $(function() {
        var $things = $('article.curr section');

        $things.waypoint(function(direction) {
          if (direction === 'down') {
            //do stuff
            console.log(this);
            console.log('down');
          }
        }, { offset: '50%' });

        $things.waypoint(function(direction) {
          if (direction === 'up') {
            //do stuff
            console.log(this);
            console.log('up');            
          }
        }, {
          offset: function() {
            return $.waypoints('viewportHeight') / 2 - $(this).outerHeight();
          }
        });

    });

}

所发生的情况是航路点仅被触发一次,并且仅触发一次。 除非您滚动到底部并刷新页面,否则它将识别最顶部的部分,而不是其他部分,然后它将识别所有四个元素。

我在这里做错了什么?

现场演示已开始 HERE
用户名:dev
密码:lolboy

最佳答案

您已将正文标记设置为position:fixed 和overflow:hidden,这意味着滚动事件永远不会在窗口上触发,而是在#treats-for-trash 上触发。 Waypoint 监听窗口上的滚动事件。

您应该更改 css,以便滚动窗口而不是文章,或者将 Waypoint 的上下文更改为正确的元素,即 #treats-for-trash(请参阅: http://imakewebthings.com/jquery-waypoints/#doc-options )。

关于javascript - 使 jQuery Waypoints 无法与 JavaScript 创建的内容很好地配合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18355262/

相关文章:

javascript - 在js函数中从数组id中检索值

javascript - 在 javascript 中更改边框颜色的问题

javascript - 页面重新加载时使用 javascript 动态选择下拉菜单,并将更改另一个下拉菜单等

javascript - 在 View 中查看 Controller 的模型数据 [sap ui5]

javascript - Express Session 属性区分浏览器和 Postman

javascript - 在 IE8+ 中附加元素的最有效方法是什么?

javascript - 无论 Div 高度如何,对齐两列 Div

jquery - 当搜索未返回结果时,Select2 过滤器值消失

javascript - 文档在 dom 操作后准备就绪

javascript - 输入元素上的 innerHTML 是什么?