2

私はこれを実装する方法を考えていますが、同様のすべての投稿の中で、誰もが簡単な例を挙げることができるとは思えません。「marketing-message-global」のトグル状態の値を Cookie に保存したいだけです。ユーザーが「hide-marketing-message-btn」をクリックすると、トグル状態が Cookie に保存されます。ユーザーがページを更新すると、保存されたトグル状態が使用され、オフに切り替えられた div が非表示になります。

<div id="marketing-message-global">
</div>
<div id="hide-marketing-message-btn">
</div>

$(document).ready(function() {
 if $('#hide-marketing-message-btn").clicked()
 {
    $("#marketing-message-global").hide();
    $.cookie("toggle-state") == true;
 }

if ($.cookie("toggle-state") == true)
{
    $("#marketing-message-global").hide();
}
else if ($.cookie("toggle-state") == false)
{
$("#marketing-message-global").show();
}
 });
</script>
4

2 に答える 2

5

jquery cookie プラグインを使用しました ( https://github.com/carhartl/jquery-cookie )

    $(function(){
       if($.cookie){
           //By default, if no cookie, just display.
           $("#marketing-message-global").toggle(!(!!$.cookie("toggle-state")) || $.cookie("toggle-state") === 'true');
    }

    $('#hide-marketing-message-btn').on('click', function(){
        $("#marketing-message-global").toggle();
        //Save the value to the cookie for 1 day; and cookie domain is whole site, if ignore "path", it will save this cookie for current page only;
        $.cookie("toggle-state", $("#marketing-message-global").is(':visible'), {expires: 1, path:'/'}); 
});

});
于 2013-08-14T18:07:21.560 に答える
0

私はこれがうまくいくと思います:

1) 他のイベントで Cookie を設定する場合:

$(document).ready(function() {
    if ($("#hide-marketing-message-btn").prop("hidden") == "hidden")
    {
        $("#marketing-message-global").hide();
        $.cookie("toggle-state") == true;
    }
    else
    {
        // ... 
    }
});

2) div をクリックして一度にトグルを実行して Cookie を設定します。

$(document).ready(function() {
    $("#hide-marketing-message-btn").click(function() { 
        if ($("#hide-marketing-message-btn").prop("hidden") == "hidden")
        {
            $("#marketing-message-global").hide();
            $.cookie("toggle-state") == true;
        }
        else
        {
            // ... 
        }
    });
});
于 2013-08-14T18:08:01.623 に答える