2009-08-03 11 views
1

私は "li"タグのリストを持っていますが、ユーザー入力に基づいてRJSを介して問題を表示したり隠したりすることはできますが、データが保存されてから翌日に戻ってきます。要素はまだ隠されていますか?言い換えれば、モデルのデータに基づいて、どの要素を隠すべきかをどのように教えていますか?ページをレールに読み込む前に要素を非表示にするにはどうすればよいですか?

答えて

1

あなたはユーザーが何かをクリックしたり、何かを提出したり、liアイテムの表示/非表示をしていますか?

彼らはサイトを去り、明日またはそれ以降の日付になるかもしれませんか?

私は隠されるべきli項目の文字列を含むクッキーを設定します。

私はその文字列を渡すことができるjquery関数を持っています。私のサイトのボディで、私はあなたが非表示にする必要があるものを隠し、その後これらの数字を解析しようとしているjavascript関数をしたいと思います(擬似コード)

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);"> 

} 

のような少し何かを持っているでしょう。

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でそれを行うだろうthatsの方法だと思います。

もちろん、JavaScriptがロードされ、そのクッキーをルビに解析する前に、サーバー側で行うこともできます。リストアイテム番号がクッキーに含まれている場合は、隠しクラスをリストアイテムにエコーアウトします。シンプル。

私はルビーを知らないので、私が編集したクッキーコードはphp lingoに基づいています。

幸運のベスト。お役に立てれば。

+0

クッキーでは実行しませんでしたが、インスタンス変数のみでした。しかし、これは基本的に正しい答えです。 – chrishomer

関連する問題