Я использую JQuery для отображения «Field2» (раскрывающийся список), если «Field1» (Dropdown) имеет значение «Да», Поле2 "скрыто. Это отлично работает, если я обновить страницу, которая выполняет следующее:Как показать элемент, используя JS, перед тем, как появится страница, после обновления
1) Нагрузка Page
2) Проверьте «Да» в «Field1», и если да отображать «Field2», в результате чего «дрожи «эффект как« Поле2 »« показывает »после загрузки страницы. Было бы лучше, если бы этот шаг был выполнен до загрузки страницы.
Вот мой текущий код:
<script type="text/javascript">
$(document).ready(function() {
if ($("#Field1").val()=="Yes") {
//show the hidden div
$("#Field2").show("fast");
}
else {
//otherwise, hide it
$("#Field2").hide("fast");
}
$("#Field1").change(function() {
// If checked
if ($("#Field1").val() == "Yes") {
//show the hidden div
$("#Field2").show("fast");
}
else {
//otherwise, hide it
$("#Field2").hide("fast");
$("#Field1").val("");
}
});
});
</script>
Приведенный выше код работает отлично, если страница не обновляется. Итак, как я могу «показать» поле2 до загрузки страницы, чтобы удалить этот эффект «содрогания»?
Большое спасибо заранее.
EDIT:
Got к silution вдохновленный ответ Cerbrus в.
В основном я спрятал окружающий DIV, используя «display: none», а затем «показал» его после обработки логики JS. Однако ключевой бит должен был включать в себя:
setTimeout(function() { $("#WrapperDiv").show(); }, 20);
Спасибо за это. Используете ли вы таймаут для маскировки задержки, связанной с обработкой логики для Field2, и показывая ее при необходимости? Код сервера задерживается достаточно, не добавляя дополнительных задержек. – SamJolly
Я добавил задержку для имитации загрузки страницы, чтобы показать, что элементы становятся видимыми после загрузки. – Cerbrus
Хм, что с нисходящим? – Cerbrus