現在、ナビゲーション内のリンクにアクティブなクラスを追加するスクリプトを使用しています。これはほとんどのページでうまくいき、hrefとURLを比較します。対応するページを開いているときにアクティブなクラスをナビゲーションに追加
私が遭遇する問題の1つは、ユーザーがドメインに上がったときと、ユーザーがホームページへのリンクをクリックしたときです。自宅へのリンクは:../
ですので、あなたがホームページにいるときにスクリプトを比較するものはありません。
スクリプトは他のすべてのリンク(../contact
および../blog/
)に対して動作します。スクリプトはhrefとURLを比較できるためです。
私はリンクのIDフォームを比較することを考えましたが、残念ながらそれを動作させることはできませんでした。以下は私が現在使っているスクリプトですが、これはおそらく編集する必要があります。
$(function(){
var url = window.location.pathname,
urlRegExp = new RegExp(url.replace(/\/$/,'') + "$");
$('.nav-order a').each(function(){
if(urlRegExp.test(this.href.replace(/\/$/,''))){
$(this).addClass('current');
}
});
});
ありがとうございました!あなたは正規表現を使用している理由
いかなる理由をお試しください! (等号演算子を使用していて、それが期待どおりに一致するように私に聞こえます) –
ホームページであることがわかっている場合、おそらく正規表現は必要ありません。その部分を単純にハードコードすることができます。 – joym8
私はこれを前にしたことはないと認めなければなりません。公平であるために、私はこのスクリプトをオンラインで見つけ、それが自分のニーズに合うと思った。残念ながら私はjqueryについてあまりよく分かりません。 –