いくつかの要素に CSS を適用していて、それらを display: none; にしています。ユーザーがラジオ ボタンをクリックすると、次のように表示されます。要素から外して表示します。
ただし、jQuery を介してこれらの要素に CSS を適用しています。ページが読み込まれるたびに..幅は適用されません。私は setwidth(1/2) か何かを持っていて、親divの幅を見つけて半分に切り、その幅をそれに設定します。ただし、div全体が表示されないため、ページがロードされるとすぐに、そのjquery関数を取得することさえできません...したがって、幅は0pxです..そして、DIVをロードするたびに..すべて効果があり、基本的には幅 0px の巨大な DIV です。
どうすればこれを行うことができますか?
私がいる場所では、JFiddle としての wifi がフィルタリングされ、アクセスがブロックされました。しかし、ここに私のマークアップがあります:
HTML:
<fieldset id="new_item">
<legend>New Item</legend>
<div class="input-row">
<div class="input-wrap setwidth(1/2)">
@Html.LabelFor(model => model.ProductDescription, T("Product Description (maximum of 30 characters"))
@Html.TextBoxFor(model => model.ProductDescription, new { @class = "setwidth(1)", @maxlength = "30" })
</div>
<div class="input-wrap setwidth(1/2)">
@Html.LabelFor(model => model.ProductClass, T("Product Class"))
@Html.DropDownListFor(model => model.ProductClass, new System.Web.Mvc.SelectList(Model.ProductClasses, "Value", "Key"), new { @class = "setwidth(1)" })
</div>
</div>
他にもありますが、ここに私の jQuery と CSS を示します。
<style type="text/css">
.hide { display: none; }
</style>
<script type="text/javascript">
$(document).ready(function () {
$('#new_item').addClass('hide');
$('#existing_item').addClass('hide');
$('#StateOfItem').change(function () {
//every time value of StateOfItem is changed
if ($('.new_item').is(':checked')) {
$('#new_item').removeClass('hide');
$('#existing_item').addClass('hide');
}
else if ($('.existing_item').is(':checked')) {
$('#new_item').addClass('hide');
$('#existing_item').removeClass('hide');
}
});
});
</script>