1

私はしばらくこれを解決しようとしてきましたが、私が持っているものを完全に組み合わせることができません。ページは動的で、情報はデータベースからロードされます。チェックすると、そのすぐ下にある div(hidey) をトグル (表示) する call(class=registerbut) のチェックボックスがあります。正常に動作しますが、ページのリロード後、チェックされた状態に関係なく、すべての div(非表示) が表示されます。チェックされたものだけが表示されたままになり、すべてではありません。

<div style="width:150px; float:left; padding:0px 0 0px 10px;">
<b>Approve</b><br />
<b>Day 1</b><input type="checkbox" name="" value=""/>
<b>Day 2</b><input type="checkbox" name="" value=""/><br />
<b>Day 3</b><input type="checkbox" name="" value=""/>
<b>Day 4</b><input type="checkbox" name="" value=""/><br />
<b>Day 5</b><input type="checkbox" name="" value=""/>
<b>Day 6</b><input type="checkbox" name="" value=""/><br />
<b>Day 7</b><input type="checkbox" name="" value=""/>
<b>Day 8</b><input type="checkbox" name="" value=""/><br />
<b>Approve All Dates</b><input type="checkbox" name="" value=""/><br />

<br />
</div>
<input type="checkbox" class="registerbut" name="toggle" style="margin-top:8px;">Approve


<div class="hidey" style="width:500px; float:left;margin-bottom:10px; padding:0px 0 0px 10px;height:20px; display:none;">
<b>This is where we can put the information for e-signature part of the deal</b><br />
</div>

これにより、次/次の div(hidey) が唯一の明らかにされた div であることを確認します。

$('.registerbut').change(function(){
    $(this).next('.hidey').toggle();})

次の例では、ページのリロード時に div(hidey) が引き続き表示されますが、チェック状態に関係なく、すべての「非表示」div が表示されます。

$(document).ready(function() {
$('.hidey').toggle($(".registerbut").is(":checked"));});

$(".registerbut").click(function() {
$('.hidey').toggle('fast');});

助けてくれてありがとう。

4

1 に答える 1

2

http://jsfiddle.net/ExplosionPIlls/xEfRK/

.changeを使用する代わりに、チェックされた状態に基づいて明示的に表示/非表示を使用するようにメソッドを更新し.toggleます。

if ($(this).is(":checked"))

次に、$(".registerbut").trigger('change');オンページロードは必要に応じて機能します。

于 2013-01-25T04:35:59.577 に答える