当我使用旧版本的jQuery Waypoints时,我在一个脚本文件中声明了我网站中的所有路标,如果某个元素在某个页面上不存在,那就无关紧要了航点要么开火要么被忽视。但是,在更新到当前版本之后,当我有几个如此声明的路标点时:
var sticky = new Waypoint.Sticky({
element: $('.stickynav')[0],
offset: 100,
});
var successStories = new Waypoint({
element: $('#slider-wrap'),
handler: function(direction) {
if(direction === 'down'){
$('ul.navbar-nav li.how').removeClass('active');
$('ul.navbar-nav li #slider-wrap').addClass('active');
} else if (direction === 'up'){
$('ul.navbar-nav li #slider-wrap').removeClass('active');
$('ul.navbar-nav li.how').addClass('active');
}
},
offset: 90
});
如果其中一个航路点元素在我所在的当前页面上不存在,则会抛出一个错误,即该元素未被传入并在该代码之后终止所有进程。您现在必须在每个特定页面上声明航点吗?
答案 0 :(得分:1)
我找到了解决方案。我只是将函数包装在
中if($('.selector').length) {
...
}
首先检查元素是否存在。