簡體   English   中英

如果存在Cookie,則隱藏表格行

[英]Hide table rows if Cookie is there

根據我在這里此處的上一個問題,我發現可以使用javascript設置cookie。 我想將其與jquery結合使用,以為切換的表行設置一個cookie狀態。 我想讓重載時隱藏的隱藏行。

這是我到目前為止所取得的成就:

// Load cookies if any   
if(readCookie('togState')) {
       $('table#toggle tr.' + readCookie('togState')).hide();
    }

    $(function() {
        $('table#toggle tr.container').click(function() {
          var idTog = $(this).attr('id');
            $(this).toggleClass('off').nextAll('.' + idTog).toggle();
            setCookie('togState', idTog, 30);
            alert('Cookies: ' + readCookie('togState'));
        });

});

父級: <tr id="parent-1" class="container">

以下孩子: <tr class="contained parent-1"> ,等等

如您所見,cookie被讀取,但是在瀏覽器刷新時未設置。 我究竟做錯了什么?

我想要的是,如果單擊了父容器,那么將隱藏所有已切換的行(其類等於其父容器的ID),並設置cookie。

任何幫助將不勝感激。 謝謝。

我用於快速檢查的源cookie:

function setCookie(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=/";
}

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;
}

function eraseCookie(name) {
    setCookie(name,"",-1);
}

更新:

我也嘗試過每種功能,以免碰運氣:

$('table#toggle tr.' + readCookie('togState')).each(function() {
     $(this).hide();
   });

更新2:

如果我將支票放入jquery中(我使用hide()), 它將起作用,但僅適用於單個cookie。 因此,現在的實際問題是如何為更多的父行保留更多的cookie?

如果您使用此答案中setCookie()函數, setCookie() cookie設置為具有30秒的生存期。 這可能不足以滿足您的要求,因此您可能應該考慮稍微增加一下。 :-)

編輯回復:您的問題編輯-如果您要設置多個Cookie,則以下行會出現問題:

document.cookie = name+"="+value+expires+"; path=/";

在這里,您每次調用setCookie()時都會覆蓋cookie屬性。 如果要設置多個Cookie,則每次調用setCookie()都需要在字符串前添加/添加新的名稱/值對。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM