div будет slideDown, но не будет slideUp - PullRequest
5 голосов
/ 17 ноября 2009

Я пытаюсь показать и скрыть серию div, используя toggle, slideUp и slideDown. Я могу получить div для slideDown, но я не могу получить его для slideUp. Я использовал этот сценарий без инцидентов раньше, поэтому я действительно не понимаю, почему это не работает. Я включил свой сценарий и div, который я пытаюсь показать и скрыть.

Краткое примечание: когда я помещал обычный старый тег p в div "hidden Транспортные средства", он работал нормально. Он показывал и прятался, как и предполагалось. Однако, когда я положил свой стол обратно в этот 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>

Ответы [ 2 ]

3 голосов
/ 18 ноября 2009

Я опубликовал этот совет в качестве комментария, и он помог исправить проблему, поэтому я публикую его снова здесь:

Когда анимации slideUp / slideDown работают только в одном направлении, это часто ошибка позиционирования. Либо элемент, который вы анимируете, должен быть установлен на position:relative, либо к дочерним элементам элемента применяется float, и они не дают родительскому элементу истинную высоту.

Я бы попробовал добавить float:none в таблицу. Если это не сработает, попробуйте добавить position:relative к div#HiddenVehicles.

0 голосов
/ 20 августа 2014

Для тех, у кого нет проблем с перемещением / позиционированием, я обнаружил, что обновление с jQuery 1.10 до 1.11 решило проблему.

...