2010-03-10 2 views
0
$(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"); 
     } 
    }); 
}); 

이 문제를 해결하는 방법을 알지 못해 어떤 도움을 주셔서 감사합니다.이 Jquery 함수의 문제점은 무엇입니까?

UPDATE :

나는 다음과 같은 기능을 사용하려고했다. 그것은 나에게 문제를 제공

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

    }); 
}); 

, (THEAD 때 붕괴하고 그것을 확장하고 다시 축소를 클릭, 그래서 항상 붕괴 될 것이다). 그래서 맨 위에있는 기능을 얻으려고합니다.

+0

이 무엇을 달성하고 싶어를? –

+0

나는 클릭 이벤트가 모든 "table.section thead"에 나타나기를 원할 때 클릭하면 테이블의 tbody가 숨겨집니다. – Amra

답변

5

이 경우에 눈에 보이는 선택기를 사용

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

'slideToggle()'에 동의하면, ** 많은 일이 ** 간단 해집니다. – Ben

+0

@ 닉 : 고마워, 그게 내가 무엇을 찾고 있었는지, 그러나 더 단순한 함수로 얻고있는 문제, 아직도 그런 일이 없다. tbody가 보이지 않거나 똑같은 클릭으로 붕괴 할 때, 나는 false를 사용하려고 시도했다. , 왜 이런 일이 일어날 지 아십니까? 감사. – Amra

+0

if 문에는 경고를 추가하고 else에는 경고를 추가했습니다. 항상 if에 도달하므로 항상 슬라이드 업을 수행합니다. – Amra

관련 문제