我有一个“li”标签列表,我可以通过基于用户输入的RJS隐藏并显示没有问题,但是数据保存了什么,然后用户第二天回来,我该如何使它成为页面附带的元素仍然隐藏?换句话说,基于模型中的数据,我如何告诉一个元素应该被隐藏?
答案 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。
祝你好运。希望这会有所帮助。