这段代码在某一点上工作,但现在抛出这个错误,我不确定它是什么意思。我用谷歌搜索了它,但似乎我找到的是接近的,但不是我所遇到的问题的确切。
错误: 未捕获的TypeError:无法使用'in'运算符在100
中搜索'using'JS代码:
$('a.page-scroll').bind('click', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset(100).top
}, 1500, 'easeInOutExpo');
//check to see if its a drop down button
if(!$(this).hasClass("dropdown"))
{
if ( $(window).width() < 767){
$('.navbar-toggle').click();
}
}
event.preventDefault();
});
这是导致问题的部分:
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset(100).top
}, 1500, 'easeInOutExpo');
答案 0 :(得分:0)
检查您的$($anchor.attr('href')).offset(100).top
值,或者只使用静态数字而不是它,如果没问题,那么该值必须有一些错误。
答案 1 :(得分:0)
我知道这个问题很古老,但是我刚刚遇到了类似的问题。如果查看jQuery documentation on .offset(coordinates)
,您会发现它不是在寻找实际坐标,而是在寻找包含坐标的对象:
坐标
类型:PlainObject
包含属性
top
和left
的对象,这些属性是表示元素的新的顶部和左侧坐标的数字。
因此,如果您执行以下操作:
$('a.page-scroll').bind('click', function(event) {
var $anchor = $(this);
var myOffset = { top: "100px", left: "0px" };
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset(myOffset).top
}, 1500, 'easeInOutExpo');
//check to see if its a drop down button
if(!$(this).hasClass("dropdown"))
{
if ( $(window).width() < 767){
$('.navbar-toggle').click();
}
}
event.preventDefault();
});
(请注意myOffset
变量及其在.offset()
调用中的使用)
您应该得到想要的结果!