Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > сохранение в куках


Автор: Angel333 19.10.2010, 16:03
мне на сайте http://nz-ua.com/ нужно прописать в js скрипте код, который сохранял бы в куках, для того чтобы, когда разворачиваю меню оно опять не сворачивалась при переходе на другую страницу.
вот скрипт http://nz-ua.com/design/scripts/jquery-1.2.6.min.js

вот еще кусок скрипта в html странице:

Код

<script type="text/javascript">
    $(document).ready(function() {
        $(".topMenuAction").click( function() {
            if ($("#openCloseIdentifier").is(":hidden")) {
                $("#slider").animate({ 
                    marginTop: "-248px"
                    }, 500 );
                $("#topMenuImage").html('<img src="design/images/open.png" alt="" />');
                $("#openCloseIdentifier").show();
            } else {
                $("#slider").animate({ 
                    marginTop: "0px"
                    }, 500 );
                $("#topMenuImage").html('<img src="design/images/close.png" alt="" />');
                $("#openCloseIdentifier").hide();
            }
        });  
    });
</script>

Автор: cassej 19.10.2010, 16:18
На Jquery просто ставь куки след. образом:
$.cookie("name", "value");

Считывай их 
$.cookie("name");

Удаляй
$.cookie("name", null);

соответственно проверяй наличие и отображай, если cookie стоят значит разворачивай, если нету их, то не разворачивай

Автор: Angel333 19.10.2010, 16:32
Цитата(cassej @  19.10.2010,  16:18 Найти цитируемый пост)
На Jquery просто ставь куки след. образом:
$.cookie("name", "value");

Считывай их 
$.cookie("name");

Удаляй
$.cookie("name", null);


а ты бы мог показать это на примере моего кода. js я только начинаю изучать, мне очень нужно его знать, но это меню мне по работе нужно сделать уже сейчас. помоги, пожалуйста

Автор: cassej 19.10.2010, 17:08
Код

<script type="text/javascript">
    $(document).ready(function() {
    if ($.cookie("topMenu")) $(".topMenuAction").click();
        $(".topMenuAction").click( function() {
            if ($("#openCloseIdentifier").is(":hidden")) {
                $.cookie("topMenu", "1");
                $("#slider").animate({ 
                    marginTop: "-248px"
                    }, 500 );
                $("#topMenuImage").html('<img src="design/images/open.png" alt="" />');
                $("#openCloseIdentifier").show();
            } else {
                $.cookie("topMenu", null);
                $("#slider").animate({ 
                    marginTop: "0px"
                    }, 500 );
                $("#topMenuImage").html('<img src="design/images/close.png" alt="" />');
                $("#openCloseIdentifier").hide();
            }
        });  
    });
</script>


Как-то так, могу конечно ошибаться smile

Автор: Angel333 19.10.2010, 17:49
вставил этот код и у меня меню вообще не открывалось. потом подключил плагин для jQuery http://plugins.jquery.com/files/jquery.cookie.js.txt и меню заработало, но в куки так и не сохраняет. я так понимаю в место topMenu меню должен быть какой-то элемент стилей в меню?
вот код самого меню:
Код

<div id="linkList">
            <div id="sliderWrap">
                <div id="openCloseIdentifier"></div>
                <div id="slider">
                    <div id="sliderContent">
                            <ul id="listService">
                                <li><a href="organizing_events.html">Организация событий</a></li>
                                <ul id="listSer">
                                    <li><a href="corporate_party.html">- корпоративный праздник</a></li>
                                    <li><a href="private_party.html">- частный праздник</a></li>
                                    <li><a href="major_events.html">- крупные мероприятия</a></li>
                                </ul>
                                <li><a href="creative.html">Креатив – копирайт, креатив</a></li>
                                <li><a href="promo.html">Промо, PR</a></li>
                                <li><a href="production.html">Продакшн – аудио видео</a></li>
                                <li><a href="design.html">Дизайн</a></li>
                                <ul id="listSer">
                                    <li><a href="des_web.html">- веб</a></li>
                                    <li><a href="des_polygraphy.html">- полиграфия</a></li>
                                </ul>
                            </ul>
                    </div>
                    <div id="openCloseWrap">
                        <a href="#" class="topMenuAction" id="topMenuImage">
                            <img src="design/images/open.png" alt="" />
                        </a>
                    </div>
                </div>
            </div>
        </div>

Автор: cassej 22.10.2010, 09:10
Вот как должно быть, проверил работает, только у тебя open.png(close.png) немного прыгает, не разбирался почему...

Код

<script type="text/javascript"> 
$(document).ready(function() {
    if($.cookie("topMenu") == "open") {
        $.cookie("topMenu", "open");
        $("#slider").css("margin-top", 0+"px");
        $("#topMenuImage").html('<img src="design/images/close.png" alt="" />');
        $("#openCloseIdentifier").hide();
    } 
    $(".topMenuAction").click( function() {
        if ($("#openCloseIdentifier").is(":hidden")) {
            $("#slider").animate({ 
                marginTop: "-248px"
                }, 500 );
            $("#topMenuImage").html('<img src="design/images/open.png" alt="" />');
            $("#openCloseIdentifier").show();
            $.cookie("topMenu", null);
        } else {
         $.cookie("topMenu", "open");
            $("#slider").animate({ 
                marginTop: "0px"
                }, 500 );
            $("#topMenuImage").html('<img src="design/images/close.png" alt="" />');
            $("#openCloseIdentifier").hide();
        }
        return false;
    });  
});
</script>

Автор: Angel333 24.10.2010, 23:13
cassej

Огромное тебе спасибо!!! Ты мне очень помог! Заменил на твой код и все работает отлично. И ни чего не прыгает, кнопка open.png(close.png) прыгает только в 6 IE, а это не страшно. Проблема была с тем что на этой странице http://nz-ua.com/corporate_party_gallery.html список вообще не хотел открываться, потому что был конфликт с библиотекой jquery-1.4.2.min.js. Она у меня отвечает за нестандартный скролл. Я отключил эту библиотеку и меню начало раскрываться и скролл остался нестандартным. Вообщем все круто! Еще раз спасибо! Очень выручил.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)