2015-08-17 40 views
2

使用Javascript - 滾動效應干擾鏈接

$('body a').click(function(e){ 
 
\t \t e.preventDefault(); 
 
\t \t var goTo = $(this).attr('href').replace('#',''); 
 
\t \t $("html, body").animate({ 
 
\t \t \t scrollTop:$('a[name="'+goTo+'"]').offset().top 
 
\t \t },1100); 
 
\t \t 
 
\t \t window.location.hash = "#"+goTo; 
 
\t \t 
 
\t });

有我的JavaScript代碼,它工作正常,但如果我嘗試點擊鏈接我得到這個錯誤:

類型錯誤:$(。 ..)。offset(...)未定義

回答

0

這是因爲e.preventDefault(); 它可以防止鏈接工作,和你使用其他腳本在體內

嘗試將其設置爲全部標籤

+0

謝謝SOOOO了! – Paul

0

嘗試:

$('a[href*=#]:not([href=#])').click(function() { 
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') 
     || location.hostname == this.hostname) { 

     var target = $(this.hash); 
     target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
      if (target.length) { 
      $('html,body').animate({ 
       scrollTop: target.offset().top 
      }, 1100); 
      return false; 
     } 
    } 
});