0

私はフィドルを持っています

<h2>TITLE INFO</h2>

<div>text 1</div>
<div>text 2</div>
<div>text 3</div>




jQuery('h2').toggle(function () {
    jQuery('body').addClass('order_list');
    $.cookie('info_type', 'order_list', {
        expires: 30
    });
}, function () {
    jQuery('body').removeClass('order_list');
    $.cookie('info_type', null);
});

var order_list_var = $.cookie('info_type');
jQuery('body').addClass(order_list_var);

Cookie が設定されていてページをリロードすると、h2 をクリックしてみてください: 何も起こらない 2 回目にクリックした場合にのみ、Cookie とクラスが削除されます

4

1 に答える 1

0

を使用する代わりに、 を使用toggleできますclick。このような:

jQuery('h2').click(function(){
    if (jQuery('body').hasClass('order_list')){
        jQuery('body').removeClass('order_list');
        $.cookie('info_type', null);
    }
    else{
        jQuery('body').addClass('order_list');
        $.cookie('info_type', 'order_list', {
            expires: 30
        });
    }
});

問題は、ページをリロードして をクリックすると、 の現在の状態に関係なく、h2常に の最初の関数が実行されることです。このようなものを使用すると、の状態を完全に制御できますtoggleh2clickh2

于 2013-06-16T01:53:14.483 に答える