我遇到了一些问题,解决了为什么我的Jquery被忽略了。下面是Jquery:
$(document).ready(function() {
var $root = $('html, body ');
$('a').click(function(e) {
var href = $.attr(this, 'href');
$root.animate({
scrollTop: $(href).offset.top
}, 500, function () {
window.location.hash = href;
});
return false;
});
这是我试图很好地滚动到页面的一部分的jquery,如果我使用.offset('top')
几乎可以工作但是抛出了这个错误:
未捕获TypeError:无法使用'in'运算符来搜索“using”in 顶
使得jquery跳转而不是滚动得很好。
Jquery代码的其余部分:
// Responsive menu
$(function() {
var pull = $('#pull');
menu = $('nav ul');
menuHeight = menu.height();
$(pull).on('click', function(e) {
e.preventDefault();
menu.slideToggle();
});
$(window).resize(function(){
var w = $(window).width();
if(w > 320 && menu.is(':hidden')) {
menu.removeAttr('style');
}
});
});
});
以前有没有人经历过这种情况并找到解决方案?
答案 0 :(得分:3)
您正在尝试获取功能的top
offset
:
$(href).offset.top
jQuery对象有一个方法.offset()
,运行的结果有一个属性.top
。
也许这就是你想要用的东西?
$(href).offset().top
我已经调查了错误消息,很明显它发生在jQuery中的the setOffset
call中。
似乎在offset
函数的某个地方使用参数"top"
调用,这是不正确的。
如果没有所有代码我无法进一步调试,但请检查您的scrollTo
参数是否已正确拼写,并且错误确实发生在代码中的该行上。