Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) jQuery Как запомнить событие в cookies?

Как запомнить событие в cookies?


     03.01.2016    jQuery    652

вопрос
Здравствуйте всем! Прошу помощи!
Имеется следующий код:
<script>
$(document).ready(function() {
    $('.block a').mouseup(function () {
          $(this).css('color','#ffffff').css('background','#ff0000').css('border','1px solid #ff9999');
    });
});
</script>

<div class="block">Блок</div>

При нажатии на блок, блок меняет свой стиль. Как запомнить это событие в cookies?

Ответил: nowheremany


<script>
$(document).ready(function() {
    $('.block a').mouseup(function () {
          $(this).css('color','#ffffff').css('background','#ff0000').css('border','1px solid #ff9999');
$.cookie("block_a_"+$(this).parent()[0].id,1,{path:'/',expires:10});
    });
    $('.block').each(function(){
if( $.cookie("block_a_"+this.id)==1) $('a',$(this)).mouseup();
    })
});
</script>


У элементов $('.block) должен быть ID

Комментарии пользователей (11)

nowheremany
192

1659 | 1292

nowheremany - 3 января 2016 18:02 - Эксперт


Благодарность принимаю тут Связь

lxmk
24

lxmk - 3 января 2016 21:24 - Юзер

<script src="https://raw.githubusercontent.com/carhartl/jquery-cookie/master/src/jquery.cookie.js"></script>
<script>
$(document).ready(function() {
    $('.block a').mouseup(function () {
          $(this).css('color','#ffffff').css('background','#ff0000').css('border','1px solid #ff9999'),
start: $.cookie("slidesStart")||1,
animationComplete: function(a){  $.cookie("slidesStart",a,{path:'/',expires:10})}
    });
});
</script>

То есть таким образом? Прошу меня простить, но я не знаю, как верно это сделать.

vitnet
218

2174 | 930

vitnet - 3 января 2016 22:47 - Эксперт

<script src="https://raw.githubusercontent.com/carhartl/jquery-cookie/master/src/jquery.cookie.js"></script>

<script>
$(document).ready(function() {
    $('.block a').mouseup(function() {
          $(this).css({'color': '#ffffff', 'background': '#ff0000', 'border': '1px solid #ff9999'});
          $.cookie('name', 'ok', {path:'/', expires:10});
    });
});
</script>

lxmk
24

lxmk - 5 января 2016 22:12 - Юзер

И вам огромное спасибо за помощь! Удачи вам!

nowheremany
192

1659 | 1292

nowheremany - 3 января 2016 23:30 - Эксперт

<script>
$(document).ready(function() {
    $('.block a').mouseup(function () {
          $(this).css('color','#ffffff').css('background','#ff0000').css('border','1px solid #ff9999');
$.cookie("block_a_"+this.id,1,{path:'/',expires:10});
    });
    $('.block a').each(function(){
if( $.cookie("block_a_"+this.id)==1) $(this).mouseup();
    })
});
</script>


У ссылок в блоке block должны быть установлены ID типа
<a id="123123" ... >

Благодарность принимаю тут Связь

lxmk
24

lxmk - 4 января 2016 13:49 - Юзер

Дело в том, что в блоке block невозможно добавить ссылку с id, потому как там ссылка уже есть. Это блок, который оборачивает рейтинг. Эта конструкция выглядит следующим образом (это то, что формирует сам dle, единственное я его обернул в блок block):
В шаблоне:
<div class="block">[rating-plus]Голосовать {rating}[/rating-plus]</div>

На выходе:
<div class="block"><a href="#" onclick="doRate('plus', '848'); return false;" >Голосовать <span id="ratig-layer-848" class="ignore-select"><span class="ratingtypeplusminus ignore-select ratingplus" >+1</span></span></a></div>

И при нажатии на блок block, этот же блок меняет стиль. Вот мне и необходимо именно для каждого блока присвоить свой id, и чтобы при нажатии на блок это событие запоминалось в cookies. Вот в чем дело.
Каким образом это можно реализовать? Подскажите, пожалуйста.

nowheremany
192

1659 | 1292

nowheremany - 5 января 2016 00:34 - Эксперт

***Комментарий удален***

Благодарность принимаю тут Связь

lxmk
24

lxmk - 5 января 2016 13:36 - Юзер

Да, всё работает. Александр, Огромное спасибо за помощь! И такой вопрос, скажите пожалуйста, это событие запоминается в cookies на какое время?

nowheremany
192

1659 | 1292

nowheremany - 5 января 2016 16:28 - Эксперт

Параметр expires в днях "expires:10" - 10 дней

Благодарность принимаю тут Связь

lxmk
24

lxmk - 5 января 2016 22:10 - Юзер

Всё доступно и понятно. Я Вам очень благодарен и признателен за помощь. Удачи вам!

lxmk
24

lxmk - 6 января 2016 15:13 - Юзер

Вопрос решен. Огромное спасибо!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы