Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите дописать часть скрипта Jquery (переключение стилей, переадресация).

Константин Ефименко Гуру (3721), закрыт 4 года назад
jquery:
$(document).ready(function(){
if (localStorage.getItem('addClass')) {
var targetClass = localStorage.getItem('addClass');
$(`.${targetClass}`).addClass('custom');
}
$('.target').on('click', function() {
$(this).addClass('custom');
localStorage
.setItem('addClass',
$(this).attr('class')
.replace('target ','')
.replace('custom', '')
);
});
});
css:
.target {opacity: .5;}
.custom {opacity: 1;}
html:
<div class="target target-item-1"><a href="simple.php?lang=ru"></div>
<div class="target target-item-2"><a href="simple.php?lang=kz"></div>
<div class="target target-item-3"><a href="simple.php?lang=en"></div>
Суть скрипта в том, что он переключает и сохраняет непрозрачность <div> после обновления страницы. Это удобно когда внутри <div> находится тег <a> для перехода по ссылке. Но что делать, если пользователь ещё не нажимал не на одну и из ссылок, а уже перешёл по соответствующему адресу?
Идея в том, чтобы пользователь перейдя по ссылке напрямую, а не по нажатию на <div>, сразу же увидел состояние его работы.

Но когда я пишу нечто вроде:
if ($(location).attr('simple.php?lang=kz')){
$(`.${targetClass}`).addClass('custom');
}
if ($(location).attr('simple.php?lang=en')){
$(`.${targetClass}`).addClass('custom');
}
То это не работает. Как правильно сделать, чтобы состояние .custom переключалось и когда пользователь, переходит по конкретному адресу?
Лучший ответ
Петр Верхов Мастер (1292) 4 года назад
Если я правильно понял суть вашего вопроса, то так точно не заработает.
Гиперссылка это такая штука, которая не подразумевает выполнение каких-то действий кроме перехода.
Есть у меня подозрение, что вы очень сильно заморочились с тем, где заморачиваться не стоило.
Во первых чем плохо просто передать номер блока через GET?
Если не устраивает отказывайтесь от гиперссылки совсем. Div style="cursor:pointer"
и
$('.target'').click(function() {
});
внутри нужные действия и редирект.

Почитал внимательнее, видимо вы и пытаетесь GET изобразить:
var lang = getUrlParameter('lang');
Остальные ответы
Малыш Просветленный (31784) 4 года назад
А чем вас не устраивает значение css свойства a:visited { color:red; } Вот решение. Пользователь уже ходил по данной ссылке
Похожие вопросы