ですが、別ページ(下層ページ)に同じ内容の表示があるので、
そちらも一緒に同じラジオボタンで変更できる方法があればお教えください。
このような場合、Cookieを使うことが多いようです。
Cookieに表示に関する情報を保持することで、別のページでも変更した表示を維持できます。
Cookie以外の方法としてlocalStorageがあり、本来ならばこちらが適切(表示の情報はJavaScriptでのみ扱うため、サーバに送信する為のCookieは不適切であり、JavaScriptのみで簡潔し、保存期限も無いlocalStorageは適切)なのですが、
古いブラウザに対応していない事と、パフォーマンスの問題により今回はCookieとしました。
サンプルは以下になります:
ラジオボタンで変更
変更の反映
私はjQueryを好まないので、素のJavaScriptでサンプルを作りました。
ラジオボタンで変更で設定を変更すると、それをCookieに保存します。
そして変更の反映でCookieを読み取り、設定を反映します。
コードは、右上に出る[Edit in JS Bin]というボタンをクリックするとプレビュー画面が出るので、そちらで確認して下さい。
(何かしらの理由によりコードを見ることが出来ない場合はコメントにて連絡してください。)
なお、ラジオボタンで変更と変更の反映を複数のウィンドウやタブで開きっぱなしにしている間は設定は反映されません。
どちらも、再読込時に反映されます。
再読込せずに反映させる方法もあるのですが、タイマー処理またはlocalStorageを使うためコードがより複雑になります。
そこまでの機能を盛り込んでも無用に混乱させるだけと考え、今回は見送りました。
上記のサンプルでは、Cookieの読み書き用としてgetCookie
とsetCookie
の2つを定義していますが、
即興で組んだ関数のためこれを利用するのは危険かもしれません。
Cookies.jsやjquery-cookieを使いましょう。
また、今回は単純にするため、style属性を直接指定し背景色を変更していますが、CyberMerginaさんの解答にあるように
前もってあるクラスに背景色を設定したスタイルを用意しておき、
JQueryのaddclassを使って、クラスを付与し背景を変える。
色など、CSSで変更するべき"デザイン"については、クラスを切り替え変更する方法が適切です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/04/14 02:50
2015/04/14 03:35
2015/04/14 04:44
2015/04/14 05:50
2015/04/18 10:46