2013-04-08 57 views
0

的,我花费了一些链接,因为这样:未捕获无法读取空

<ul class="vertlist"> 
    <li><a href="#personal" title="Go to Personal section." class="crumblink">Personal</a></li> 
    <li><a href="#business" title="Go to Business section." class="crumblink">Business</a></li> 
    <li><a href="#company" title="Go to Company section." class="crumblink">Company</a></li> 
    <li><a href="#engineering" title="Go to Engineering section." class="crumblink">Engineering</a></li> 
    <li><a href="#it" title="Go to IT section." class="crumblink">IT</a></li> 
    <li><a href="#hr" title="Go to HR section." class="crumblink">HR</a></li> 
    </ul> 

而一些jQuery的是应该允许一些流畅的导航这样:

$(document).ready(function() { 
      $('.crumblink').click(function() { 
       $('html, body').animate({ 
        scrollTop: $($.attr(this, 'href')).offset().top 
       }, 500); 
       return false; 
      }); 
     }) 

一刻起,我点击任何链接,我得到关于未捕获的异常:

“无法读取空的财产顶”

例如用于个人的锚标记是这样的:

<h2><a name="personal" id="myPersonal">Personal</a></h2>

回答

0

如果你想获取从你的锚的href财产,你不这样做是正确的(也许我还没有发现的jQuery的奥秘):

scrollTop: $($.attr(this, 'href')).offset().top 

它应该是:

scrollTop: $(this.href).offset().top 

如果href值是无效的选择,offset()将PROB巧妙地返回null。此代码将防范:

var elements = $(this.href); 

if (elements && elements.length) { 
    $('html, body').animate({ 
     scrollTop: elements.offset().top 
    }, 500); 
} 
2

锚变量不包含一个有效的选择为你的网站。在此调用偏移将返回null

您试图访问不存在的href。

see here