私があなたの質問を正しく理解していれば、これにはlikerandom
があるため、あなたの関数はリンクに対して機能しませんが、サーバーは実際には別のページにリダイレクトします.ランダムなボタンであり、アクティブな状態にはなりません。href
http://mysite.com/random
http://mysite.com/about-me
もう一度クリックしても同じページに移動しない可能性が高いため、アクティブな状態にしたい場合は議論することができますが、それは問題ではありません。
これを解決する方法を見ることができます。
サーバー側:
ie にリダイレクトする代わりに。http://mysite.com/about-me
ランダム関数では、にリダイレクトすることもできますhttp://mysite.com/about-me?random
。この get 変数を追加することによって、リンクの動作を変更しないでください (非常に厳密なコントローラーがある場合や、その変数が実際に使用されている場合を除きますが、その可能性は低いです)。その変数がURLに存在するかどうかをjavascriptで検出し、random
ボタンをアクティブにすることができます。
このようなもの:
$(document).ready(function(){
var url = document.URL;
// check for random
if (url.indexOf('?random') >= 0) {
$('#topbar a.random').addClass('check');
}
// check all other
$('#topbar a:not(.random)').each(function(){
if($(this).attr('href').indexOf(url) >= 0){
$(this).addClass('check');
}
else{
$(this).addClass('nocheck');
};
});
});
cookie:
サーバー側のランダム コントローラーにアクセスできない場合は、cookie を使用して JavaScript で完全に行うことができます (ページ リクエストを通じて変数を永続化する方法は私が知っている唯一の方法です)。
ボタンをクリックすると、実際のリンクを実行させる前にrandom
、最初random
に JavaScript で Cookie を true に設定します。ページに入ると、前のオプションと同様のチェックを行うことができますが、URL の代わりに、Cookie が tre であるかどうかをチェックします。その場合は、false に変更し (次のページのリクエストでランダム ボタンが再度アクティブにならないようにします)、random
ボタンをアクティブに設定します。
最初の解決策が優先されると私は信じています (Cookie は最後の手段としてのみ使用する必要があります。Cookie はページ要求ごとに送信されます。これは余分なデータを意味し、ユーザーが Cookie を無効にしている場合や、Cookie の使用を禁止する法律がある場合があります)。 、そのため、関数は常に機能するとは限りません)、まだ JavaScript を記述しません。このソリューションを好むかどうか、さらにサポートが必要かどうかお気軽にお問い合わせください。