#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'); } }
Комментариев нет:
Отправить комментарий