带有动态div ID的JQuery Cookies

时间:2014-01-07 14:21:56

标签: javascript jquery cookies

我希望你们能给我一个正确的方向,因为这个问题一直困扰着我。

我基本上想要完成的是这个。我在页面上有几个div,可以使用按钮独立地折叠。每个div都有自己的特定ID,使用一串静态文本生成,以及基于自动递增的数据库值的数值。这确保我在一个页面上永远不会有两个具有相同ID的div。要使用Javascript(jQuery)定位每个特定div,我使用以下代码:

http://jsfiddle.net/LU7QA/0/

这非常有效,可以做它应该做的事情。只有一个问题。在每个页面frefresh上,每个打开的div都会关闭。一切都重置了,这就是我想在这个结构中使用JQuery Cookies的原因。唯一的问题是,我知道它是如何工作的,但是我不能让它在这个特定的构造中工作,因为它必须每次处理一个完全唯一的ID并且需要存储该特定ID的值。

如下所示:http://jsfiddle.net/LU7QA/1/

我试图摆弄它,但我似乎无法让它正常工作,我开始对这个问题失去兴趣..

<div>
    <button class="button_slide" value="1">Show hide</button>
</div>
    <div id="slidingDiv_1" class="slidingDiv">Stuff</div>

<div>
    <button class="button_slide" value="2">Show hide</button>
</div>
    <div id="slidingDiv_2" class="slidingDiv">Stuff</div>


function initMenu() {

$(".slidingDiv").hide();

    // Toggle Field

$(".button_slide").click(function(){

    //alert($(this).val()); debugging purposes

    var sliding_id = $(this).val();

    div_sliding_id = '#slidingDiv_'+sliding_id;

    $(div_sliding_id).next().slideToggle('slow', function() {

    $.cookie(div_sliding_id, $(this).is(':hidden') ? "closed" : "open");                 
    return false;
    });
});

$('.button_slide').each(function() { 
    var sliding_id = $(this).val();
    div_sliding_id = '#slidingDiv_'+sliding_id;
    if ($.cookie(div_sliding_id) == "open")  $(this).next().show(); 
});

}

jQuery(document).ready(function() {initMenu();});

1 个答案:

答案 0 :(得分:-1)

你可能错过了最后一个* button_slide *声明的点吗?

顺便说一下,看看https://code.google.com/p/sessionstorage/

相关问题