div sera slideDown, mais il ne sera pas slideUp
Question
Je cherche à afficher et masquer une série de divs à l'aide bascule, slideUp et slideDown. Je suis en mesure d'obtenir la div slideDown mais je ne peux pas l'obtenir à slideUp. Je l'ai utilisé ce script sans incident avant, donc je suis vraiment confus pour expliquer pourquoi cela ne fonctionne pas. J'ai inclus mon script et la div je tente de montrer et se cacher.
Note rapide: Quand je mets une étiquette régulière ancienne p dans la div « véhicules cachés », il a bien fonctionné. Il montrait et se cacher comme il était censé. Cependant, quand je mets ma table de retour dans cette div, il ne fonctionne pas.
<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>
La solution
Je posté dans les commentaires, et il a aidé à résoudre le problème, donc je suis annonce à nouveau ici:
Lorsque des animations slideUp / slideDown ne fonctionnent que dans un sens, il est souvent un bug de positionnement. Soit l'élément que vous animez a besoin d'être mis à position:relative
ou les enfants de l'élément ont un float
qui leur sont appliquées et ne sont pas donner l'élément parent hauteur réelle.
Je voudrais essayer d'ajouter float:none
à la table. Si cela ne fonctionne pas essayez d'ajouter position:relative
au div#HiddenVehicles
.
Autres conseils
Pour ceux sans problème flotteur / positionnement, je trouve que la mise à niveau de jQuery 01.10 à 01.11 a résolu le problème.