2011-08-10 7 views
0

私はちょうど隠されることができるメニュービットブロックを持っています。訪問中に自分の状態を記憶するために、私はjQuery.cookieを(使用することにしました) 私のコードは非常に基本的なものです:jQuery.cookie:非常に単純なコードにもかかわらず、クッキーの更新はありません

jQuery(document).ready(function(){ 
    $(".titre_acordeon").next().hide(); 
    $(".titre_acordeon").each(function() { 
     jQuery.cookie($(this).parent().attr("id"),false, {path: "/"}); 
    }); 
    $(".titre_acordeon_0").next().show(); 
    $(".titre_acordeon_0").each(function() { 
     jQuery.cookie($(this).parent().attr("id"),true, {path: "/"}); 
    }); 
}); 
jQuery(document).ready(function(){ 
    $(".titre_acordeon, .titre_acordeon_0").click(function() { 
     $(this).next().toggle("medium"); 
     var id = $(this).parent().attr("id"); 
     var valeur_id = jQuery.cookie(id); 
     alert(valeur_id) 
     if (valeur_id == true) 
     { 
      jQuery.cookie(id, false, {path: "/"}); 
     } 
     else if (valeur_id == false) 
     { 
      jQuery.cookie(id, true, {path: "/"}); 
     } 
     alert(jQuery.cookie(id)) 
    }); 
}); 

「 除外ではないとして、クッキーの値は変更しない:表示/非表示の作品を「(valeur_id)があれば」、クッキーは変更はなく、一度だけ

私は必死だで「(valeur_id == true)の場合は、」私は変更する場合は、!これはこれを読むためeasyyy!

THXでなければなりません!

+0

私はその警告(valeur_id)と警告(jQuery.cookie(id)) を返すことを忘れていました。初期値に応じて常に同じfalseまたはtrueを返します。 – flop25

答えて

2

この「プラグ」を使用している場合

https://github.com/carhartl/jquery-cookie/blob/master/jquery.cookie.js

「にあなたの問題は、あなたがクッキーへの書き込みの文字列に変換され、あなたのクッキーにブールを書いているということです。クッキーからの読み返しは逆に翻訳されません。ですから、

if (valeur_id == true) 

のために、クッキーにあなたの小切手をtruefalseを置くかどうかに関係なく、常に真の論理値に評価されます。これは、"true""false"がどちらもこのようなチェックで「真実」と評価される文字列であるためです。

そのライブラリに固執する場合は、クッキーに文字列を書き込み、読み取り時に文字列を入力する必要があります。

$.cookie('cookieName', 'true'); 

そして:

if ($.cookie('cookieName') === 'true') 

重要な注意:余談として

あなたのページの全体のコードサンプルを実行した場合、あなたは、クリックした結果を見ることは決してないだろうあなたがページをリロードしたときのクッキーの読書に。最初のコードブロックは、前のページの読み込み時にクリックされたものを上書きします。

+0

これは上書きされます。私は私の間違いを強調するためにdevs soxではなく、jsの初心者です! – flop25

+0

問題ありません - 文字列の使用に関するアドバイスが問題を解決しましたか? – JAAulde

+0

sry私はあなたに最後の投稿を気付かなかった:はい問題だった thxもう一度 – flop25

関連する問題