2017-06-26 11 views
0

上のクッキーからbodyclass私はセットクッキー、ページのロード

を.blackoutするために身体のクラスを設定し、ボタンを持って、私はクッキーを設定するjs-cookie を使用していますし、次のコードは、私のボタンに関連付けられています。

<script> 
$('#boToggle').on('click', function(e) { 
    $('body').toggleClass('blackout'); 
}); 
</script> 

は私が把握することはできませんすることは.toggleClassでクッキーを設定するには、上記のリンクからCookies.set('name', 'value');を使用する方法と、クッキーから取得し、身体クラスにそれを適用する方法です。

ありがとうございます!

+1

何クッキー 'key'と[値]あなたが設定したいですか? – shaochuancs

+0

あなたはCookieを不適切に使用している可能性がありますが、js-cookieを使用してCookieを設定して取得するのは簡単です。おそらくデータをストリング化し、途中で解析する必要があります。 –

+1

'.toggleClass( 'blackout'、Cookies.get( 'name')== 'value')'おそらく?私は問題を理解しているかどうかはわかりません。 – Phil

答えて

0

セッション間でトグルされたクラスの状態を維持したいと思うようですが、これはCookieで行うことができますが、おそらくlocalStorageに適しています。私が説明します完全を期すために

は、より良い、このquestionを参照してくださいクッキーとローカルストレージの違いを理解するためにクッキー

に近づくの両方が、私は正直にあなたがいずれかで行くことができると思いますアプローチ。この場合、ローカルストレージがクッキーを超える利点の1つは、追加のライブラリを必要としないことです。

let state = Cookies.get('toggle'); 
$(body).toggleClass('.blackout', state) 

更新したスニペットを使ってローカルストレージ

let state = localStorage.getItem('toggle'); 
$(body).toggleClass('.blackout', state) 

var toggleLocalStorage = localStorage.getItem('toggle'); 
var toggleStatus = toggleLocalStorage ? toggleLocalStorage : false; 

$('#boToggle').on('click', function(e) { 
    $('body').toggleClass('blackout', toggleStatus); 
    localStorage.setItem('toggle' toggleStatus); 
}); 
+0

うん!私は今までにローカルストレージを試したことがありません。そして私はそれを働かせるように見えませんでした。私の更新されたコードは、トグルボタンの上にあります(間違ったスニペットをコピーしました...それは私の迷惑コードです)。 –

+0

'Cookie.set'または' localStorage.setItem'にはイベント/アクションが必要です。この仕組みは同じように機能し、クリックごとに保存することができます。その場合は、あなたの「クリック」ハンドラの中で共有したスニペットを含めることができます。 @SaraHubrich私はあなたに試してみるためにもっと具体的な例を追加しました。 –