3

Cookie の追加に問題があります。いくつかの回答を読んでください。ただし、以前にそれらを使用したことがない場合、理解するのは困難です。

私が基本的に望んでいるのは、誰かが指定されたボタンをクリックした場合に Cookie を追加することです。たとえば、「いいね」ボタンをクリックすると、前後に移動したり、ページを更新したりしても、非表示のコンテンツが表示され、数日後に Cookie が削除されます。

コンテンツを非表示にするために使用したものは次のとおりです。

HTML:

<div id="fd">
    <p>Button from below will become active once you hit like button!</p>
    <div id="get-it">
        <a class="button"><img src="img/get-button.png"></a>
    </div>
</div>
<div id='feedback' style='display:none'></div>

JavaScript:

FB.Event.subscribe('edge.create', function (response) {
    $('#feedback').fadeIn().html('<p>Thank you. You may proceed now!</p><br/><div id="get-it"><a class="button2" href="pick.html"><img src="img/get-button.png"></a></div>');
    $('#fd').fadeOut();
});

ただし、コンテンツ ページで更新または前後に移動すると、再び非表示になります。これが、ボタンのヒット時に Cookie を追加したい理由です。説明やサンプルコードを教えてくれる人はいますか?

4

2 に答える 2

13

jQuery-cookie pluginを使用することをお勧めします。いくつかの使用例を次に示します。

// Create a cookie
$.cookie('the_cookie', 'the_value');

// Create expiring cookie, 7 days from then:
$.cookie('the_cookie', 'the_value', { expires: 7 });

// Read a cookie
$.cookie('the_cookie'); // => 'the_value'
$.cookie('not_existing'); // => null

// EDIT
// Attaching to a button click (jQuery 1.7+) and set cookie
$("#idOfYourButton").on("click", function () {
    $.cookie('the_cookie', 'the_value', { expires: 7 });
});

// Attaching to a button click (jQuery < 1.7) and set cookie
$("#idOfYourButton").click(function () {
    $.cookie('the_cookie', 'the_value', { expires: 7 });
});

また、Cookie が存在することの確認を追加する必要があります (ブラウザーがリロードされたときのために:

if ($.cookie('the_cookie')) {
    // Apply rule you want to apply
    $('.ClassToSelect').css("display", "none");
}
于 2012-04-27T17:31:11.897 に答える
3

Cookie の代わりに、localStorageを使用することをお勧めします。

于 2012-04-27T17:28:56.897 に答える