I know that the answer has already been marked as correct, but I would like to go beyond the scope of a simple comment.
3.0, being the main version, interrupted the changes. One of them was the removal of triggerOnce . This is noted in changelog . This is also mentioned in destroy docs , where using destroy at the end of the handler is called as an alternative to the old triggerOnce .
triggerOnce nāt the same as calling destroy because all Waypoint methods were called in jQuery objects. Elements in these jQuery objects may have multiple waypoints attached to them, but there was no way to separate them after they were created. If you called destroy , all waypoints on this element were destroyed. The triggerOnce option, however, worked on a separate waypoint backstage. Now that 3.0 returns instances of the Waypoint class directly, and this in the handler is a reference to the Waypoint instance instead of the element, there is no difference between triggerOnce and calling this.destroy() to complete the handler. Thus, the code has been deleted.
source share