2017-11-29 15 views
1

初心者ここに:)Jquery smoothscrolling - 複数の除外項目を追加

私は自分のページに滑らかなスクロールをしています。私は4つのリンクを除外したいと思います。

以下のコードを使用して、4つのリンクの1つを除外できます。他の3つのリンクを除外するにはどうすればよいですか?

私は 'or'演算子を動作させようとしましたが失敗しました。

ワイルドカードも試しました。

除外は任意の助けをいただければ幸いです

if (this.hash !== "#sample-3a") { 
     event.preventDefault(); 
     var hash = this.hash; 

#サンプル-3A#サンプル-3B#サンプル-3C#サンプル-3D

です - あなたに感謝:)

+0

不思議なことに、および/またはオペレータがページ全体スムーズスクロールを仕事と無効にすることを拒否したが、VAR配列が御馳走を働いている使用は、あなたの迅速な対応のためにどうもありがとうございました! –

答えて

0

:あなたが値を維持するためにarrayまたはobjectを使用し、後でその中に存在する場合、条件チェック値の内側できる別のアプローチとして、

if (this.hash !== "#sample-3a" || this.hash !== "#sample-3b" || this.hash !== "#sample-3c" || this.hash !== "#sample-3d") { 
     event.preventDefault(); 
     var hash = this.hash; 
} 

を。

var ref = ['#sample-3a', '#sample-3b', '#sample-3c', '#sample-3d']; 

// check value present in array 
// you can also use `ref.indexOf(this.hash) == -1` 
if (!ref.includes(this.hash)) { 
     event.preventDefault(); 
     var hash = this.hash; 
} 

またはオブジェクト参照付き。

var ref = { '#sample-3a': '', '#sample-3b': '', '#sample-3c': '', '#sample-3d': ''}; 

// check key present in the reference object 
if (!(this.hash in ref)) { 
     event.preventDefault(); 
     var hash = this.hash; 
} 
0

をあなたが防ぐためにこれを使用することができますスクロール。

あなたが logical OR (||) operator使用する必要が
if(this.hash == "#sample-3a" || this.hash == "#sample-3b" || this.hash == "#sample-3c" || this.hash == "#sample-3d") 
     { 
     return false; 
     } 
+0

'return false'はOPが'#sample-3a'ですでに動作している 'preventDefault()'と本質的に同じです - 実際の質問にどのように答えますか?* "他の3つをどうやって除外しますか? –

+0

event.preventDefault()メソッドは、要素のデフォルトアクションを発生させず、他のdivチェック編集アノテーションを停止します。 –

関連する問題