Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Проверка на наличие конкретного слова в адресной строке

#javascript #jquery


Доброго времени суток!
У меня на странице есть 4 блока у которых есть свой 'id', по которому я перехожу
с другой страницы нажимая на ссылку типа "link#anchor" (то есть обычая якорная ссылка
на другую страницу) и таких ссылок 4 как и блоков к ним,
после перехода по ссылке адресная строка имеет типа "..../link#anchor"
и моя задача открывать определенный блок в зависимости от того что прописано в адресной
строке допустим ("/link#anchor" "/link#anchor_1" "/link#anchor_2" "/link#anchor_3"
"/link#anchor_4") то есть соответственно должен открываться какой то один блок

$address = location;

        if ($address.search.indexOf('#win')) {
            $window_1.show('slow');
        };
        if ($address.search.indexOf('#mac')) {
            $window_2.show('slow');
        };
        if ($address.search.indexOf('#android')) {
            $window_3.show('slow');
        };
        if ($address.search.indexOf('#ios')) {
            $window_4.show('slow');
        };


Вот примерно так выглядит код, но при нажатии какой либо ссылки открываются все блоки,
как решить проблему?
    


Ответы

Ответ 1



Если вы будете хранить в хэше id требуемого блока, то тогда достаточно: var hash = location.hash; $(hash).show('slow');

Ответ 2



let $address = location; let anchors = { win: $window_1, mac: $window_2, android: $window_3, ios: $window_4, }; for(let key in anchors) { if (~$address.search.indexOf(`#${key}`)) { anchors[key].show('slow'); } }

Комментариев нет:

Отправить комментарий