2009-11-17 6 views
5

toggle、slideUp、およびslideDownを使用して一連のdivを表示および非表示にしようとしています。私はslideDownにdivを取得することができますが、私はslideUpにそれを取得することはできません。私はこのスクリプトを事故なく使用していたので、なぜこれが動作しないのか本当に混乱しています。私はスクリプトとdivを表示して隠そうとしています。divはslideDownを行いますが、slideUpは行いません

クイックメモ:通常の古いpタグを "hidden vehicles" divに入れるとうまくいきました。それは、それが想定されていたように、見せたり隠したりしていました。しかし、私がテーブルをそのdivに戻すと、それは機能しませんでした。

<script type="text/javascript"> 
$(document).ready(function() { 
    $(".ShowVehicles").toggle(function() { 
     $(".HiddenVehicles").slideDown(2000); 
     $(this).text("Hide All"); 
    }, function() { 
     $(".HiddenVehicles").slideUp(2000); 
     $(this).text("Show All");     
    }); 
}); 

<div class="HiddenVehicles" style="display:none; width:730px;"> 
    (there will be a giant table in here) 
    </div> 
+1

私はちょうどあなたのコードをローカルでテストして、うまくいきました。あなたのテーブルは浮かんでいる可能性が最も高いです。あなたのdivとテーブルに 'position:relative'を追加することができます。どこかのライブテストページにリンクする可能性はありますか?デバッグする方が簡単です。 –

+2

訂正、それらは2つの無関係な提案でした。あなたのテーブルがフロートしていない場合、位置:相対を試してください。そうであれば、テーブルcssで 'float:none'を指定してオフにします。 –

+1

ありがとう!これは完全に機能しました。私のテーブルは、おそらくフロートクラスをどこかから継承していました!再度、感謝します! – RachelGatlin

答えて

3

私はコメントとして、このアドバイスを掲載し、私はここに再びそれを掲示していますので、それは問題を解決するのに役立った:

ときslideUp/slideDownアニメーションだけの仕事を1つの方法では、しばしば位置決めバグです。アニメーション化する要素をposition:relativeに設定するか、要素の子にfloatが適用され、親要素に真の高さが与えられていないかのいずれかです。

float:noneをテーブルに追加しようとします。それでも問題が解決しない場合はposition:relativediv#HiddenVehiclesに追加してみてください。

+0

@ Jasonをキャッチしてくれてありがとう! –

0

フロート/位置決めの問題がない人にとっては、jQuery 1.10から1.11へのアップグレードが問題を解決したことがわかりました。

関連する問題