[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Смена стиля у элементов дизайна
waakДата: Понедельник, 04.08.14, 14:26:46 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 19
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
Здравствуйте ! подскажите пожалуйста решение одной проблемы у меня есть скрипт который меняет цвет фона сайта и цвет фона шапки то есть пользователю дается несколько вариантов расцветки из которых он выбирает и все работает вот только с одним минусом после того как пользователь еще раз меняет что то одно шапку или фон тогда у другого автоматически становиться цвет по умолчанию
ВОПРОС?
как мне сделать так чтоб поля сохраняли выбранный вариант ранее ???

Скрипт

<script type="text/javascript" src="http://talantlev.ucoz.ru/js/jquery.min.js"></script>
<script type="text/javascript" src="http://talantlev.ucoz.ru/js/jquery.cookie.js"></script>

<b>Выберите цвет фона:</b>
<select id="bg_form">
<option selected value="#ffffff">Белый
<option class="st1"value="#000000">Черный
<option class="st2"value="#0000ff">Голубой
<option class="st3"value="#00ff00">Известковый
<option class="st4"value="#00ff7f">Весенний зеленый
</select>

<b>Выберите цвет фона шапки:</b>
<select id="bg_form2">
<option selected value="#ffffff">Белый
<option class="st1"value="#000000">Черный
<option class="st2"value="#0000ff">Голубой
<option class="st3"value="#00ff00">Известковый
<option class="st4"value="#00ff7f">Весенний зеленый
</select>

<script type="text/javascript">
$(document).ready(function() {
if ($.cookie("bg_color")!='') $("body").css("background-color",$.cookie("bg_color"));

$("#bg_form").change(function(){
$("body").css("background-color",$("#bg_form :selected").val());
$.cookie("bg_color",$("#bg_form :selected").val(), {expires: 1});
});
});

$(document).ready(function() {
if ($.cookie("bg_color")!='') $("div #heder").css("background-color",$.cookie("bg_color"));

$("#bg_form2").change(function(){
$("div #heder").css("background-color",$("#bg_form2 :selected").val());
$.cookie("bg_color",$("#bg_form2 :selected").val(), {expires: 1});
});
});
</script>
 
НэринсДата: Понедельник, 04.08.14, 16:16:32 | Сообщение # 2
Рядовой
Группа: Чатер
Сообщений: 12
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
я плохо знаю js но могу предположить что дело в том что в обоих функциях цвет записывается в одну и ту же куку $.cookie("bg_color")
Этот код по идее должен заработать
Код
<script type="text/javascript">
$(document).ready(function() {
if ($.cookie("bg_color")!='') $("body").css("background-color",$.cookie("bg_color"));

$("#bg_form").change(function(){
$("body").css("background-color",$("#bg_form :selected").val());
$.cookie("bg_color",$("#bg_form :selected").val(), {expires: 1});
});
});   
$(document).ready(function() {
if ($.cookie("bg_color2")!='') $("div #heder").css("background-color",$.cookie("bg_color2"));

$("#bg_form2").change(function(){
$("div #heder").css("background-color",$("#bg_form2 :selected").val());
$.cookie("bg_color2",$("#bg_form2 :selected").val(), {expires: 1});
});
});
</script>


Сообщение отредактировал Нэринс - Понедельник, 04.08.14, 16:31:43
 
waakДата: Понедельник, 04.08.14, 22:08:33 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 19
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
Нэринс, Большое спасибо за отзывчивость но это не помогло все осталось по прежнему если я выбираю цвет для шапки и для фона одновременно то есть для шапки к примеру красный а для фона зеленый он так и становиться но после того как я обновлю страницу и решу изменить цвет для шапки к примеру на жолтый то и фон сразу же меняется на тот что у меня по умолчанию задан а конкретно на белый
 
DefmanДата: Понедельник, 04.08.14, 22:19:50 | Сообщение # 4
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
Зачем две проверки на готовность документа?
Код

$(document).ready(function() {
if ($.cookie("bg_color") != null) $("body").css("background-color",$.cookie("bg_color"));

$("#bg_form").change(function(){
$("body").css("background-color",$("#bg_form :selected").val());
$.cookie("bg_color",$("#bg_form :selected").val(), {expires: 1});
});

if ($.cookie("bg_color2")!=null) $("div #heder").css("background-color",$.cookie("bg_color2"));

$("#bg_form2").change(function(){
$("div #heder").css("background-color",$("#bg_form2 :selected").val());
$.cookie("bg_color2",$("#bg_form2 :selected").val(), {expires: 1});
});
});
 
waakДата: Вторник, 05.08.14, 02:31:33 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 19
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
Defman, в коком смысле две? я тут подумал над решение этой проблемы таким способом правда не знаю как сделать . Сейчас у меня показывается сразу два поля и у них по умолчанию стоит белый цвет то есть при вызове этого действия я автоматически меняю сразу цвет шапки и фона на белый . а если разбить этот скрипт на два и вызывать их в разных окошках то есть когда я буду задавать цвет для шапки то второй скрипт не будет срабатывать правильно? вот только как правильно его разбить не знаю

Сообщение отредактировал waak - Вторник, 05.08.14, 02:34:38
 
DefmanДата: Вторник, 05.08.14, 02:48:13 | Сообщение # 6
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
Код

<script type="text/javascript">
$(document).ready(function() { //первый вызов
if ($.cookie("bg_color")!='') $("body").css("background-color",$.cookie("bg_color"));

$("#bg_form").change(function(){
$("body").css("background-color",$("#bg_form :selected").val());
$.cookie("bg_color",$("#bg_form :selected").val(), {expires: 1});
});
});

$(document).ready(function() { //второй вызов, зачем?
if ($.cookie("bg_color")!='') $("div #heder").css("background-color",$.cookie("bg_color"));

$("#bg_form2").change(function(){
$("div #heder").css("background-color",$("#bg_form2 :selected").val());
$.cookie("bg_color",$("#bg_form2 :selected").val(), {expires: 1});
});
});
</script>

Я вот это не понял)
 
НэринсДата: Вторник, 05.08.14, 22:24:46 | Сообщение # 7
Рядовой
Группа: Чатер
Сообщений: 12
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
waak, я думаю Defman, имеет в виду сделать так(ибо функция $(document).ready(function() вызывалась 2 раза хотя если скрипт идёт подряд то можно и в 1 всё это сделать)
Код
<script type="text/javascript">
$(document).ready(function() { //первый вызов
if ($.cookie("bg_color")!='') $("body").css("background-color",$.cookie("bg_color"));

$("#bg_form").change(function(){
$("body").css("background-color",$("#bg_form :selected").val());
$.cookie("bg_color",$("#bg_form :selected").val(), {expires: 1});
});
//второй вызов
if ($.cookie("bg_color")!='') $("div #heder").css("background-color",$.cookie("bg_color"));

$("#bg_form2").change(function(){
$("div #heder").css("background-color",$("#bg_form2 :selected").val());
$.cookie("bg_color",$("#bg_form2 :selected").val(), {expires: 1});
});
});
</script>

Хотя я не уверен что в этом решение проблемы но попробуйте, не выйдет так дальше подумаем


Сообщение отредактировал Нэринс - Вторник, 05.08.14, 22:29:47
 
waakДата: Пятница, 08.08.14, 14:42:05 | Сообщение # 8
Рядовой
Группа: Пользователи
Сообщений: 19
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
Defman, Нэринс, спасибо все разобрался !
 
  • Страница 1 из 1
  • 1
Поиск: