Как скрыть элемент перед загрузкой страницы в рельсы? - PullRequest
1 голос
/ 03 августа 2009

У меня есть список тегов "li", и я могу скрыть и показать без проблем через RJS, основываясь на вводе пользователя, но что данные сохраняются, а затем пользователь возвращается на следующий день, как мне сделать так, чтобы страница поставляется с элементами еще скрытыми? Другими словами, как определить элемент, который должен быть скрыт, основываясь на данных в модели?

1 Ответ

1 голос
/ 03 августа 2009

То есть пользователь щелкает какие-то вещи или отправляет что-то, а 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.

Желаем удачи. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...