Цитата:
|
Все что используется указано в коде чуть выше... там нет функций своих... использую конструкцию .toggle
Для работы с cookie использую вот этот готовый скрипт: http://test.kridom.ru/sites/all/them...uery.cookie.js Для удобства приведу часть кода тут: $('#btn-panel-slide').toggle(function () { $("#panel .region-inner").animate({top:"0px"}, 500); $('#btn-panel-slide').addClass("active"); $.cookie('cookie_panel_status', 'active', { expires: 7, path: '/' }); }, function() { $("#panel .region-inner").animate({top:-($("#panel .region-inner").height() - 20) + "px"}, 500); $('#btn-panel-slide').removeClass("active"); $.cookie('cookie_panel_status', '', { expires: 7, path: '/' }); }); UPD: пробовал обрабатывать событие .click но что-то там совсем запутался и не получилось ничего путного... |
Alexanderos,
Мну думает, что это из-за того -, что Вы элемент включаете, тестя куки не через toggle - каким макаром оно узнает что Вы его включали ? вот и получается клик двух разовый, imxo проще тестить куки и сворачивать - разворачивать двумя функциями в зависимости от кука.. нафига там toggle ? По клику на кнопку - анализируете кук, меняете кук и направляете на ту или иную функцию |
Цитата:
Я верно мыслю? $("#btn-panel-slide").click (function () { ЕСЛИ в куках есть 'ACTIVE' - задвинуть панель ИНАЧЕ выдвинуть панель }); |
Alexanderos,
Секунду - а если при активной куке... просто добавлять параллельно и программный клик ? |
$(document).ready(function(){ if (($.cookie('cookie_panel_status')) == 'active') { $("#panel .region-inner").animate({top:"0px"}, 1); *!* $('#btn-panel-slide').click(); */!* } else { $("#panel .region-inner").animate({top:-($("#panel .region-inner").height() - 20) + "px"}, 1); } $('#btn-panel-slide').toggle(function () { $("#panel .region-inner").animate({top:"0px"}, 500); $('#btn-panel-slide').addClass("active"); $.cookie('cookie_panel_status', 'active', { expires: 7, path: '/' }); }, function() { $("#panel .region-inner").animate({top:-($("#panel .region-inner").height() - 20) + "px"}, 500); $('#btn-panel-slide').removeClass("active"); $.cookie('cookie_panel_status', '', { expires: 7, path: '/' }); }); }); |
Добавил строку - изменений не наблюдаю.
|
Alexanderos,
Нун вот так: $(document).ready(function(){ var panelHeight = $("#panel .region-inner").height(); var panelTop = panelHeight - 20; if (($.cookie('cookie_panel_status')) == 'active') { *!* $("#panel .region-inner").animate({top: 0 + "px"}, 1, "linear", function(){ $('#btn-panel-slide').click() }); */!* } else { $("#panel .region-inner").animate({top: "-" + panelTop + "px"}, 1); } $('#btn-panel-slide').toggle(function () { $('#btn-panel-slide').addClass("active"); $.cookie('cookie_panel_status', 'active', { expires: 7, path: '/' }); $("#panel .region-inner").animate({top: 0 + "px"}, 500); }, function() { $("#panel .region-inner").animate({top: "-" + panelTop + "px"}, 500); $('#btn-panel-slide').removeClass("active"); $.cookie('cookie_panel_status', '', { expires: 7, path: '/' }); }); }); |
Или даже так - покрасивше
$(document).ready(function(){ var AnimateTime=500; var panelHeight = $("#panel .region-inner").height(); var panelTop = panelHeight - 20; $('#btn-panel-slide').toggle(function () { $('#btn-panel-slide').addClass("active"); $.cookie('cookie_panel_status', 'active', { expires: 7, path: '/' }); $("#panel .region-inner").animate({top: 0 + "px"}, AnimateTime); }, function() { $("#panel .region-inner").animate({top: "-" + panelTop + "px"}, AnimateTime); $('#btn-panel-slide').removeClass("active"); $.cookie('cookie_panel_status', '', { expires: 7, path: '/' }); }); if (($.cookie('cookie_panel_status')) == 'active') { AnimateTime=1; $('#btn-panel-slide').addClass("active"); $('#btn-panel-slide').click(); AnimateTime=500; } else { $("#panel .region-inner").animate({top: "-" + panelTop + "px"}, 1); } }); |
Deff, спасибо, все работает вроде как надо!
|
Часовой пояс GMT +3, время: 20:01. |