Waypoints - 没有传递给Waypoint构造函数的元素选项

时间:2016-10-26 02:01:20

标签: jquery ruby-on-rails jquery-waypoints

我在rails项目中使用了waypoint。 (使用gem waypoints_rails)

Waypoints在我希望它可以使用的页面上正常工作。我使用航点的元素仅存在于此页面上。我正在使用Waypoint Inview。

var inview = new Waypoint.Inview({
  element: $('#the-element')[0],
  entered: function(direction) { 
     console.log("working");        
  }
});

这是正常的。

但是,我的主页现在出现此错误:

 Uncaught Error: No element option passed to Waypoint constructor

任何帮助?

3 个答案:

答案 0 :(得分:6)

我遇到了同样的问题。尝试在条件中包装您的航点,以检查页面上是否存在该元素。

if ( $( "#the-element" ).length ) {
    var inview = new Waypoint.Inview({
        element: $('#the-element')[0],
        entered: function(direction) { 
           console.log("working");        
        }
    });

}

答案 1 :(得分:0)

此消息通常表示Jquery找不到HTML元素。检查这个工作示例(jquery 3.2.1 / waypoint 4.0.1):

var waypoint = new Waypoint({
element: document.getElementsByClassName('element-features'),
handler: function(direction) {
  if (direction == "down") {
    $('nav').addClass('sticky');
  } else {
    $('nav').removeClass('sticky');
  }
},
offset: '60px'
});

使用getElementsByClassName或getElementsByID,具体取决于您在HTML元素(类或ID)中使用的定义。

<section class="element-features">

答案 2 :(得分:0)

我只添加了下一个文件 jquery.waypoints.min.js,*此脚本需要在工作代码的底部:

<script type="text/javascript" src="assets/js/jquery.waypoints.min.js"></script>

这段代码有效:

var $firstCTA = $('#firstCTA');

    $firstCTA.waypoint(function () {
    
        alert('WE ARE HERE');
    
    })