我无法让$(target)
工作。
如果我点击包含href=#top
的链接,alert(target)
会显示 #top ,但$(target).offset
会返回 null 。
$("[href^='#']").click( function() {
var target = $(this).attr('href');
alert(target);
$("#body-wrapper").animate( {scrollTop: $(target).offset().top} ,300);
return false
})
};
答案 0 :(得分:2)
当你这样做时:
$(target).offset()
你基本上是这样做的:
$("#top").offset()
但是,您显然在页面中没有ID为“top”的对象(因此它返回null)。所以,如果你给这个ID名称为top的链接也可以这样做:
<a name="top" id="top"></a>
或者,您可以使用此jQuery查找名称=“top”的链接标记:
target = target.slice(1); // remove # from start of the name
$("[name='" + target + "']").offset() // construct $("[name='top']");
在这里,您需要查找属性为name ='top'的标记。
答案 1 :(得分:0)
使用$(this).offset()
。您的target
var只是一个字符串,而不是jQuery对象或DOM节点。
答案 2 :(得分:0)
可能是页面上不存在元素#top
。尝试提醒$(target).length
,看看你得到了什么。