1

Cookie でサイドバーの状態を維持する必要があります。そのため、サイドバーを非表示にするボタンをクリックするだけで、その状態を維持するためにCookieを作成しました。次のコードを見てください。

//Create Cookie function which is usefull to create cookies

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}
//Read Cookie function which is usefull to read cookies vlues
function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}
//Earse Cookie function which is usefull to earise cookies vlues
function eraseCookie(name) {
    createCookie(name,"",-1);
}
// This function is used for  sidebar state managemnet operations.
function checksidebarstatus()
{
    var sidebarval = '';
    sidebarval = readCookie('sidebarval');
    if(sidebarval == 'hide')
    {   
        jQuery(".show-sidebar").fadeIn();
        jQuery("#main").css( "width","950" );
        jQuery("#sidebar").hide();
    }
}

次のように hidesidebar ボタンコードを非表示にする場合

// Sidebar Animation
jQuery("#hide-sidebar").click(function(){

    if(sidebarval == "hide")
    {
        //jQuery("#sidebar").delay(500).hide("slow");
        jQuery("#sidebar").hide("slide", { direction: "left" }, 500);
    }else
    {
        jQuery("#sidebar").hide("slide", { direction: "left" }, 500);
    }
    jQuery("#main").delay(500).animate({
        width: 950
    }, 1000 );
    jQuery(".show-sidebar").delay(1500).fadeIn();
    createCookie('sidebarval','hide',7);
});

jQuery("#show-sidebar").click(function(){

    jQuery(".show-sidebar").fadeOut();
    jQuery("#main").animate({
        width: 760
    }, 500 );
    if(sidebarval == "hide")
    {    
        //jQuery("#sidebar").delay(500).show("slow");
        jQuery("#sidebar").delay(500).show("slide", { direction: "left" }, 1000);
    }else
    {
        jQuery("#sidebar").delay(500).show("slide", { direction: "left" }, 1000);
    }   
    createCookie('sidebarval','show',7);
});

今、私は次のようにクッキーデータIDを取得するためのjs変数を持っています

var sidebarval = readCookie('sidebarval');

コードを実行する必要がありますが、Cookie の値を取得すると、これは許可されません

jQuery("#sidebar").delay(500).show("slide", { direction: "left" }, 1000);

この行のコメントを外すと、この show メソッドが機能します。

jQuery("#sidebar").delay(500).show("slow");
//jQuery("#sidebar").delay(500).show("slide", { direction: "left" }, 1000);

これがどのように可能であるかを誰かに教えてもらえますか。ありがとう。

4

1 に答える 1

0

プロジェクトにJQueryUIファイルを含める必要があります。一番上のショーは、デフォルトのJQueryコードライブラリにあるため、うまく機能します。一番下のshowメソッドは機能しませんが、JQuery UIEffectsCoreの一部です。このオプションを含めてJQueryUIファイルを自分で作成する必要があります。これで機能します。

そこにあるshow関数へのリンクは次のとおりです:http: //jqueryui.com/demos/show/

于 2012-05-09T09:49:32.273 に答える