Сообщение от рони
|
crystaltrumpet,
$(function(){function out()
{
var elem = $(":target"), str = "все блоки закрыты";
if(elem.length) str = "блок " + elem[0].id + " открыт";
$("#state").text(str)
}
$(window).on("hashchange", out).trigger("hashchange");
});
|
Рони, спасибо что ответили - но у меня при перезагрузке страницы показывает "все блоки закрыты", хотя открыт id1
давайте я нарисую полную структуру:
<div id="main111">
<div class="tabflex">
<div class="tab"><a href="/about#id1">Блок 1</a></div>
<div class="tab tabi"><a href="/about#id2">Блок 2</a></div>
<div class="tab"><a href="/about#id3">Блок 3</a></div>
</div>
<div id="id1">Текст первой закладки</div>
<div id="id2">Текст второйзакладки</div>
<div id="id3">Текст третьей закладки</div>
</div>
<div id="state">В данный момент открыт блок: </div>
Вот css:
#id1, #id2, #id3{
display: none;
}
#id1:target, #id2:target, #id3:target{
display: block;
}
вот код js, который определяет tab какого цвета будет при нажатии:
$(document).ready(function(){
var a=$(".tabflex .tab");a.click(function(){a.css("background","rgba (128,128,128, 0.5)");$(this).css("background","gray")});
При перезагрузке страницы допустим domain/name#id2
Ваш скрипт пишет "все страницы закрыты" хотя загружается #id2
если я нажимаю на любой из выбранных тогда да! показывается какой именно открыт блок, но мне нужно чтобы когда люди переходили по внешней ссылке на domain/name#id2 чтобы показывало в div id="state" что в данный момент открыт div #id2
Как я думал сделать:
для каждого id прописать условие
Что если #id2:target == style display block тогда выводится текст - что открыт именно блок id2
и так для каждого блока сделать проверку