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

Как на Jquery сделать условие, если пользователь перешёл по url.

Константин Ефименко Гуру (3721), закрыт 4 года назад
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<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')
Но я не как не пойму, как заставить это работать.
Лучший ответ
Малыш Просветленный (31774) 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.
Малыш Просветленный (31774) Со своей крутостью, ты далеко пойдешь. А то что ты написал, это - пи*дец, который будет каждый раз тормозить пользователя при входе на страницу, и, да этот пи*дец не сработает, если в доменном имени будет сочетание таких доменов, с такой же эффективностью можешь проверять на полное доменное имя - mydomen.ru mydomen.kz - ничего не поменяется!
Остальные ответы
====== Знаток (297) 4 года назад
Смотри window.location ты должен понят. Ты можешь отследит человека через урл
Константин ЕфименкоГуру (3721) 4 года назад
"...Ты можешь отследит человека через урл"

Я понимаю о чём ты говоришь, но пока обойдусь куда более простым решением:
$(document).ready(function(){
var current_url = window.location.href;
if (current_url.indexOf('?lang=ru') > 0){
$('.tar-ru').addClass('custom');
}
if (current_url.indexOf('?lang=kz') > 0){
$('.tar-kz').addClass('custom');
}
if (current_url.indexOf('?lang=qz') > 0){
$('.tar-qz').addClass('custom');
}
if (current_url.indexOf('?lang=en') > 0){
$('.tar-en').addClass('custom');
}
});
Похожие вопросы