Функции JQuery Toggle не выполняются - PullRequest
2 голосов
/ 07 мая 2011

Я создал скрипку здесь: http://jsfiddle.net/brombomb/kYsN7/

Поскольку slideToggle не работает с таблицами (из-за проблем с отображением блоков / строк таблицы), я попытался свернуть свой код, найденный в Интернете. Как вы можете видеть, я включил console.log () для отладки, но они никогда не запускаются. Изначально я имел их как отдельные определенные функции, но это не работало, поэтому я свернул их в вызовы функций переключения.

Оригинальный код таблицы слайдов: http://www.tino.nl/index.php/2009/08/05/table-animations-in-jquery/

Ответы [ 3 ]

1 голос
/ 07 мая 2011

Просто сделайте это:

   $('#horseStable table thead').click(function() {
      $('#horseStableBody').slideToggle();
   });

И все.Я проверил это в вашем jsfiddle, и он работает нормально.Надеюсь это поможет.Приветствия

1 голос
/ 08 мая 2011

Код работает, я думаю, вы можете просто неправильно понять, что вы сделали.Функция переключателя прикрепляет обработчик щелчка к элементу, который вызывается, при щелчке он чередует 2 вызываемых метода.Поэтому, когда вы нажимаете на свой заголовок, этот обработчик прикрепляется к телу .Тогда нажатие на тело вызовет скольжение вверх (попробуйте, это работает).

Я думаю, что вы действительно намеревались прикрепить обработчик к голове.Я предполагаю, что вы намереваетесь щелкнуть по голове, чтобы спрятаться.Нечто похожее на это:

http://jsfiddle.net/kYsN7/13/

шоу не работает должным образом, но я думаю, что структура больше соответствует вашим ожиданиям.

0 голосов
/ 07 мая 2011

Вы действительно хотите slide эффект для ваших td элементов?

Без анимации вы можете просто сделать это :

$('#horseStable table thead').click(function() {
    if ($("#horseStableBody td").is(":visible")) {
        $("#horseStableBody td").hide();
    } else {
        $("#horseStableBody td").show();
    }

    return false;
});
...