Малыш
Просветленный
(31784)
4 года назад
в Джава Скрипт, как только пользователь покинул твою страницу, про отслеживание JavaScript можешь забыть . Если я правильно понял твою задачу, то тебе надо вешать какуе-то куку, и если пользователь УЖЕ был на твоей странице, то тогда можно добавлять некий клас скажем AJAX запросом к серверу. На простом JS такое не решить (не отследить)
Константин ЕфименкоГуру (3721)
4 года назад
"На простом JS такое не решить (не отследить)"
Вообщем вышло так:
$(document).ready(function(){
var current_url = window.location.href;
if (current_url.indexOf('ru') > 0){
$('.target').removeClass('custom');
$('.target-item-1').addClass('custom');
}
if (current_url.indexOf('kz') > 0){
$('.target').removeClass('custom');
$('.target-item-2').addClass('custom');
}
if (current_url.indexOf('en') > 0){
$('.target').removeClass('custom');
$('.target-item-3').addClass('custom');
}
});
Таким образом удалось избавиться от излишних проверок класса и переключений по кнопке. Думаю такого или даже более изящного эффекта, можно было бы добиться, если бы вы перестали передёргивать каждый раз, когда видите в тексте слово ajax.
<script type="text/javascript">
$(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', '')
);
});
});
<script>
<style type="text/css">
.target {opacity: .5;}
.custom {opacity: 1;}
</style>
<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> переключился сам.
Наверно это должно быть что-то вроде:
$(location).attr('simple.php?lang=kz')
Но я не как не пойму, как заставить это работать.