2017-03-05 11 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()」を使用して他のページにアクセスするにはどうすればよいですか?

は、あなたがもしこれに声明...

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

そして、それが動作する必要があることを変更することができます

答えて

0

ありがとうございます。

+0

ありがとうございました!それは動作しませんが、それは他の何かのためですが、それは私が文字列をそのように操作することができます。 –

+0

なぜ動作しないのか不思議な人は、実際には 'event.preventDefault();'が等しい場合に '!='を '=='に置き換えてください。 –

関連する問題