如何在页面加载到rails之前隐藏元素?

时间:2009-08-03 00:03:05

标签: jquery ruby-on-rails

我有一个“li”标签列表,我可以通过基于用户输入的RJS隐藏并显示没有问题,但是数据保存了什么,然后用户第二天回来,我该如何使它成为页面附带的元素仍然隐藏?换句话说,基于模型中的数据,我如何告诉一个元素应该被隐藏?

1 个答案:

答案 0 :(得分:1)

所以你是用户点击一些东西或提交一些东西和li项目显示/隐藏?

他们然后离开网站,明天或以后可能会出现?

我会设置一个cookie,其中包含要隐藏的li项的字符串。

我会有一个jquery函数,我可以将该字符串传递给。在我的网站的主体,我会有一些像(伪代码)

的东西
if cookie exists {

    // echo function in the body tag

    echo 'onload="hideItems(' . $_COOKIE['hiddenItems'] . ')";


    // so if there's a cookie they'll wind up having code that looks like this
    // <body onload="hideItems(12-23-34-52);">

}

你想要一个javascript函数来解析那些数字,然后隐藏那些需要隐藏的数字。

function hideItems(string) {

    var partsArray = string.split('-');

    // this'll put all your list items in an array
    // e.g partsArray[0] == 12 and partsArray[1] == 23

    // now with all the items in an array, you should be able to go through and hide any list items that match the values

    // e.g
    for (i=0; i< {partsArray}.length; i++) {
        // jquery hide the list items
        $('#listItem'+partsArray[$i]).hide();
    }

}

我想你的列表项必须是这样的格式:

<ul>
    <li id="listItem12"></li>
    <li id="listItem23"></li>
</ul>

所以我认为你是如何用javascript做的。

当然,你可以在服务器端执行此操作,但是在加载javascript之前将该cookie解析为ruby。如果列表项编号包含在cookie中,则将隐藏的类回显到列表项。简单。

我不知道ruby所以我编辑的cookie代码是基于php lingo。

祝你好运。希望这会有所帮助。