Я думаю, вы должны сделать что-то вроде этого:
Скрыть все разделы в CSS, чтобы они даже не были видны во время загрузки:
#sections1, #sections2 {
display: none;
}
CSS не является обязательным. Используйте эту простую функцию для динамического отображения и скрытия:
function displayonediv(chosendiv) {
//Make sure all other divs are really hidden if there are subsequent calls:
$("div[name^=sections]").hide(200);
$("#" + chosendiv).show(200);
}
Также:
Если это не сработает, и вы можете изменить этот ужасный HTML, измените HTML следующим образом.
<div class="menu">
<a class="section" href="#sections1">Energy Profile</a>
<a class="section" href="#sections2">Statistics</a>
</div>
<div class="sections" id="sections1">
.... some stuff ....
</div>
<div class="sections" id="sections2">
.... some stuff ....
</div>
И есть этот JS:
$("a.section").click(function(event) {
$("div.sections").hide(200);
$($(this).attr('href')).show(200);
});
Как и в большинстве вещей в jQuery, весь ваш код должен быть $(function(){ /*here*/});
.
Чтобы загрузить раздел при загрузке страницы:
$(function() {
$(window.location.hash).show(200);
});