2017-03-05 55 views
0

我是Jquery的新手,所以現在我嘗試使用已經創建的代碼並理解它。 我使用的是平滑滾動代碼,但它使我離開頁面,如果我不刪除光滑滾動阻止我離開頁面

event.preventDefault(); 

但是,如果我這樣做刪除它變成空白一秒鐘的三分之一,因爲它進入錨點然後執行滾動。

下面是代碼:

$(document).ready(function(){ 
$("a").on('click', function(event) { 
if (this.hash !== ""){ //here is my problem I think 
    //Prevent default anchor click behavior 
    event.preventDefault(); //here is what makes me unable to leave page 
    var hash = this.hash; 
    $('html, body').animate({ 
    scrollTop: $(hash).offset().top 
    }, 800, function(){ 
    window.location.hash = hash; 
    }); 
    } // End if 
}); 
}); 

我想要做的是:

if(this.hash !== "" && this.split('#')[0] != location.split('#')[0]) 

但隨後的代碼只是不會執行,我試過幾個其他的方式,但只要我嘗試操縱'this',即使我把它放在另一個變量中,然後操作這個變量,它也不起作用。

那麼,如何使用「event.preventDefault()」訪問其他頁面?

謝謝

回答

0

可以更改if語句來此...

if (this.hash !== "" && this.href.split('#')[0] != location.href.split('#')[0]) 

這應該工作。

+0

謝謝!它不起作用,但那是因爲別的東西,但它確實讓我以這種方式操作字符串。 –

+0

對於任何想知道爲什麼它不起作用的人,當它相等時,你實際上想'event.preventDefault();因此用'=='替換'!=',它適用於離開頁面 –