對象的錯誤,我這裏有代碼的現場演示:LIVE DEMO偏移()頂部爲空或不在JQuery的
我所希望做的是在點擊1
盒時,它應該滾動到第一部分,當點擊2
框時,它應該滾動到第二部分等等。但是,當我點擊的數字,我收到以下錯誤:
offset().top is null or not an object
我JQuery的樣子:
$(function() {
$(".pointto").mouseover(function() {
$(this).addClass("Hover");
});
$(".pointto").mouseout(function() {
$(this).removeClass("Hover").removeClass("Pressed");
});
$(".pointto").mousedown(function() {
$(this).addClass("Pressed");
});
$(".pointto").mouseup(function() {
$(this).removeClass("Pressed");
});
$(document).on('click', '.Hover, .Pressed, .pointto', function() {
var nn = $(this).attr('id').replace('s', '');
alert('a[name="'+nn+'"]'); //clicking on 1 gives me <a name="01">
t = $('a[name="'+nn+'"]').offset().top; //t = $('a[name="'+nn+'"]').offset().top;
$('body,html').animate({scrollTop:t},800);
});
});
HTML樣本:
<a id="s01" class="pointto">1</a> //clickable link
...
...
...
<a name="01">1. About</a> //target
任何想法如何解決那個錯誤?
更新:【解析】
$(document).on('click', '.Hover, .Pressed, .pointto', function() {
var nn = $(this).attr('id').replace('s', '');
alert('a[name="'+nn+'"]');
t = $('a[name="'+nn+'"]').offset().top; //t = $('a[name="'+nn+'"]').offset().top;
$('body,html').animate({scrollTop:t},800);
});
您是否嘗試過這個'T = $( 'A [NAME = 「 '+ NN +'」]')[0] .offset()首位;'? –
在你的開發控制檯中,當你輸入$('a [name =''+ nn +'「'')時,你會得到什麼?我認爲選擇器找不到元素 – Simon
聽起來像你的選擇器沒有匹配任何元素 – landons