2012-03-08 23 views
4

ユーザーがリンクをクリックしたときに設定されるCookieを検索すると、divを開き、ユーザーはページを更新してdivがまだ開いていることを確認できます。toggle()を使用してjqueryでCookieを設定する方法

======= ======= HTML

<a class="show-settings" href="#"></a> 

======== jQueryの=======

$(function() { 
//Toggle Settings 
var s = $("a.show-settings"); 

//On click to toggle settings 
s.click(function() { 
    $("#s4-ribbonrow, #s4-titlerow").toggle(); 
}); 
//Add/Remove text 
s.toggle(function() { 
    //$(this).text("Hide Settings"); 
}, function() { 
    //$(this).text("Show Settings"); 
}); 

答えて

0

何かを。

$(function() { 
    var $s = $("a.show-settings"); 

    //On click to toggle settings 
    $s.click(function() { 
     var text = $(this).text(); 
     $("#s4-ribbonrow, #s4-titlerow").toggle(); 
     if(text === 'Show Settings') { 
      $s.text('Hide Settings'); 
      $.cookie('is-hidden', null); // remove cookie 
     }else { 
      $s.text('Show Settings'); 
      $.cookie('is-hidden', 'hidden'); // set cookie 
      } 
     return false; 
    }); 
    if($.cookie('is-hidden')) { // If cookie exists 
     $("#s4-ribbonrow, #s4-titlerow").hide(); 
     $s.text('Show Settings'); 
    } 
}); 

HTMLは、これは動作しませんでした

<a class="show-settings" href="#">Hide Settings</a> 
+0

これもうまくいきませんでした。 – Davis

+0

ちょうどここでハッキングされました...私は構文が100%であることをテストしませんでした。クッキーとコールバックを使用するのがトップのコメントの理由です。 – Hupperware

+0

とにかくプラグインを使用しないのですか? – Davis

0

Iほぼ正確に同じ目的のためにかなり確実に前にthis jQuery pluginを使用しました。それは非常に軽量であり、そのためのドキュメントは非常に簡単です。

ですから、このようなものかもしれない:あなたが仕事に、このためjQuery cookieが必要になりますjqueryの - クッキーと

$(document).ready(function() { 
SetView(); 

$('.show-settings').click(function() { 
    $('#s4-ribbonrow, #s4-titlerow').toggle(0, function(){$.cookie('show-settings', $("#s4-ribbonrow:visible")}); 
}); 

function SetView() { 
    if ($.cookie('loginScreen') == 'true') 
    $('#s4-ribbonrow, #s4-titlerow').show(); 
} 
} 
+0

(設定はデフォルトで表示されていると仮定し)。 – Davis

0

トグルからのコールバック機能を使用して、このような

// This is assuming the two elements are hidden by default 
if($.cookie('myCookie') === 'on') 
    $("#s4-ribbonrow, #s4-titlerow").show(); 

s.click(function() { 
    $("#s4-ribbonrow, #s4-titlerow").toggle(); 

    // Toggle cookie value 
    if($.cookie('myCookie') === 'on') 
     $.cookie('myCookie', 'off'); 
    else 
     $.cookie('myCookie', 'on'); 
}); 
+0

おっと、私は設定がデフォルトで非表示になっているはずです。私は必要に応じて私の答えを修正することができます。 – shaunsantacruz

+0

これは一番近いものでしたが、クッキーを設定していました。 – Davis

+0

まだ答えを探しています...とにかくプラグインを使用しないのですか? – Davis

関連する問題