Как установить cookie в jquery с помощью toggle () - PullRequest
4 голосов
/ 08 марта 2012

Поиск файла cookie, который нужно установить, когда пользователь нажимает на ссылку, открывает файл div, затем пользователь может обновить страницу и увидеть, что div все еще открыт.

======= 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");
});

Ответы [ 3 ]

0 голосов
/ 08 марта 2012

Примерно так, используя jquery-куки и функцию обратного вызова из toggle

$(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 голосов
/ 08 марта 2012

Вам понадобится jQuery cookie , чтобы это работало.

$(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 голосов
/ 08 марта 2012

Я использовал этот плагин jQuery , прежде чем достаточно надежно почти для той же цели.Он очень легкий и документацию по нему довольно легко отслеживать.

Таким образом, вы можете получить что-то вроде этого:

// 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');
});
...