Что не так с этой функцией Jquery, помогите

$(function() {
    $("table.section thead").click(function() {
      if ($(this).next("table.section tbody").style.display == "block"){
         $(this).next("table.section tbody").slideUp("slow");
      }
      if ($(this).next("table.section tbody").style.display == "none"){
         $(this).next("table.section tbody").slideDown("slow");
      }
    });
});

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

ОБНОВИТЬ:

Я пытался использовать следующую функцию.

$(function() {
    $("table.section thead").click(function() {
    $(this).next("table.section tbody").slideToggle("slow");

    });
});

Это создает для меня проблему (когда он падает, и вы нажимаете на него, он расширяется, а затем снова падает, поэтому он всегда будет разрушаться). Вот почему я пытаюсь получить функцию наверху.

1 ответ

Решение

Используйте видимый селектор в этом случае:

$(function() {
    $("table.section thead").click(function() {
      var body = $(this).next("table.section tbody");
      if (body.is(":visible"))
         body.slideUp("slow");
      else
         body.slideDown("slow");
    });
});

Но, вероятно, гораздо проще просто использовать .slideToggle() как это:

$(function() {
    $("table.section thead").click(function() {
      $(this).next("table.section tbody").slideToggle("slow");
    });
});
Другие вопросы по тегам