Хорошо, есть странная проблема со страницей, которую у меня есть.
Когда страница сначала загружается, div
я не хочу видеть, скрыт. Но через несколько секунд div
снова включается. Когда я нажимаю ссылку на главную страницу, div
я не хочу видеть, скрыт, наконец.
Я хочу написать сценарий, как событие POST
в старом PowerBuilder, где, когда все сказано и сделано, div
я не хочу видеть, наконец-то спрятаться.
У меня 1000 строк кода, и поиск кропотливо медленный.
Мне просто нужно событие, которое гарантирует, что div
я не хочу видеть, останется скрытым.
Здесь код:
function hideChildDivs(parent) {
parent.children('div').removeClass('shown').addClass('hidden');
}
function changePage(id, pageName, title, icon) {
switch (pageName) {
case 'treeview':
hideChildDivs($("#otherPageContent"));
showOnlyActivatedPanel('none');
$('#otherPageContent').removeClass('shown').addClass('hidden'); //<!-- This is the container wrapper... see below. -->
$("#pgCoreSettingsMaintenance").removeClass('shown').addClass('hidden'); //<!-- This element needs to remain hidden when the dashboard shows -->
$("#contentDivWrapper").removeClass("hidden").addClass("shown");
$("#dash").removeClass();
$("#tree").removeClass();
$("#thres").removeClass();
$('#mainContentPane h1 > i').removeClass().addClass(icon);
$("#pgDashboard").addClass("hidden").removeClass("shown");
$('#headerTitleTree').html(title);
$("#headerTitleRow").removeClass('hidden');
$("#headerTitleRow").addClass('shown');
$("#" + id).addClass("active");
$("#dash").removeClass("active");
$("#thres").removeClass("active");
break;
case 'dashboard': //<!-- this is the first div that is displayed on startup -->
hideChildDivs($("#otherPageContent"));
showOnlyActivatedPanel('none');
preLoader = false;
$("#contentDivWrapper").removeClass("shown").addClass("hidden");
$('#headerTitleTree').html(title);
$("#headerTitleRow").removeClass('hidden');
$("#headerTitleRow").addClass('shown');
$("#dash").removeClass();
$("#tree").removeClass();
$("#thres").removeClass();
$("#pgDashboard").addClass("shown");
$("#pgDashboard").removeClass("hidden");
$('#mainContentPane h1 > i').removeClass().addClass(icon);
$("#" + id).addClass("active");
$("#tree").removeClass("active");
$("#thres").removeClass("active");
$('#otherPageContent').removeClass('hidden').addClass('shown');
$("#pgDashboard").removeClass('hidden').addClass('shown');
$("#pgCoreSettingsMaintenance").removeClass('shown').addClass('hidden');
loadPageIntoDiv("web-resources/templates/" + pageName + ".html");
getKPIs(myUrl, myCallback);
break;
case 'threshold':
hideChildDivs($("#otherPageContent"));
showOnlyActivatedPanel('none');
$('#mainContentPane h1 > i').removeClass().addClass(icon);
$("#contentDivWrapper").removeClass("shown").addClass("hidden");
$('#headerTitleTree').html(title);
$("#headerTitleRow").removeClass('hidden');
$("#headerTitleRow").addClass('shown');
$("#" + id).addClass("active");
$("#tree").removeClass("active");
$("#dash").removeClass("active");
$("#pgDashboard").removeClass("shown").addClass("hidden");
$('#otherPageContent').removeClass('hidden').addClass('shown');
$("#pgCoreSettingsMaintenance").removeClass('hidden').addClass('shown'); //<!-- this element needs to remain hidden when the dashboard shows. -->
break;
}
}
вот дивы в порядке...
<div id="otherPageContent" class="hidden">
<div id="pgDashboard" class="hidden"></div>
<div id="pgThresholdConfigurationPH" class="hidden"></div>
<div id="pgCoreSettingsMaintenancePagePH" class="hidden"></div>
</div>
Используйте setInterval()
для загрузки тела. Это может помочь вам получить некоторый интервал времени после загрузки страницы.
Предпочтительно использовать setTimeout()
. Он будет вызывать вашу функцию один раз, где вы можете скрыть ur divs, указав временной интервал.
Вы пытались использовать функцию .ready()
?
$( document ).ready(function() {
changePage('','dashboard','','');
});
Мне также кажется, что если вам нужно, чтобы таймер ожидал, когда ваш javascript завершит работу, чтобы вернуть html обратно к тому, как вы этого хотите, порядок, в котором ваш код запускается при запуске, неверен. возможно, переосмыслить и переупорядочить так, чтобы после начальной загрузки ваши элементы html находились в правильном состоянии.
Почему бы не дать тегам DIV атрибут класса, а затем применить стиль CSS в {display:none;}
?