Что не так с этой функцией Jquery, помогите - PullRequest
0 голосов
/ 10 марта 2010
$(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");
      }
    });
});

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

UPDATE:

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

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

    });
});

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

1 Ответ

5 голосов
/ 10 марта 2010

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

$(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");
    });
});
...