插入新DOM元素后,Waypoint设置得太高了

时间:2015-03-09 10:48:05

标签: jquery-waypoints

使用Waypoints:在页面上插入新元素(例如错误消息)时,垂直滚动路点的设置比以前更高。

addWayPoints: function () {
            var self = this;

            this.$('.table-waypoint').waypoint({
                offset: 0,
                handler: function (direction) {
                    self.$hiddenHeadings.toggleClass('visible', direction === 'down');
                }
            });

            this.$('.table-end-waypoint').waypoint({
                offset: 165,
                handler: function (direction) {
                    self.$hiddenHeadings.toggleClass('visible', direction === 'up');
                }
            });
        },

2 个答案:

答案 0 :(得分:2)

您可以在切换标题类后重新计算所有航路点的触发点,然后拨打Waypoint.refreshAll()

答案 1 :(得分:0)

我猜测当你将元素定义为滚动点时,设置一个航点将其设置为从顶部或底部的像素高度,因此它不是航点附加到的动态点。

您需要在添加或删除DOM元素后重置航点。

        addWayPoints: function () {
            var self = this;

            this.$('.table-waypoint').waypoint({
                offset: 0,
                handler: function (direction) {
                    self.$hiddenHeadings.toggleClass('visible', direction === 'down');
                }
            });

            this.$('.table-end-waypoint').waypoint({
                offset: 165,
                handler: function (direction) {
                    self.$hiddenHeadings.toggleClass('visible', direction === 'up');
                }
            });
        },

        resetWaypoints: function (){
            Waypoint.destroyAll();
            this.addWayPoints();
        },