2012-03-08 13 views
4

尋找一個cookie,當用戶點擊鏈接時,它會打開div,然後用戶可以刷新頁面,看到div仍然打開。如何在jQuery中使用toggle()設置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

像這樣使用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 2012-03-08 17:50:57

+0

這只是在這裏被黑了...我沒有測試語法是100%。這就是頂端評論使用cookie和回調的原因。 – Hupperware 2012-03-08 17:53:12

+0

反正有沒有使用插件? – Davis 2012-03-08 18:01:28

0

我之前使用this jQuery plugin的方法幾乎完全相同。這是非常輕量級的,它的文檔很容易遵循。

所以,你可以有這樣的事情:

// 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

這沒有奏效。 – Davis 2012-03-08 17:50:47

0

你需要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

哎呀,我剛剛意識到這些設置應該默認隱藏。如果需要,我可以解決我的問題。 – shaunsantacruz 2012-03-08 17:47:35

+0

這是最接近的,但它是設置cookie。 – Davis 2012-03-08 17:51:23

+0

仍在尋找答案...有沒有反正不使用插件? – Davis 2012-03-08 17:58:07