2011-06-13 7 views
1

레코드를 클릭 할 때 추가 세부 정보를 나타내는 표가 있습니다. 세부 정보는 'description'클래스가있는 하위 div에 있습니다. 노출을 전환 할 수 있지만 이미 노출 된 요소 (예 : 이미 표시된 항목을 다시 표시하고 싶지 않음)에 대해 클릭 기능이 호출되지 않도록하고 싶습니다.동적으로 할당 된 클래스 값을 기준으로 클릭 기능을 건너 뜁니다.

나는 .bind와 .live를 사용해 보았습니다. 기본적으로 새로운 클래스 할당이 DOM에서 '활성화'되도록 허용 할 수있는 방법이 필요합니다.

미리 도움 주셔서 감사합니다.

jQuery를

$(document).ready(function(){ 

     $('#libraryBrowser tbody tr:not(.exposed)').click(function(){ 
      $('.exposed').slideUp('fast');               //hide previously shown element 
      $(this).find('div.description').slideToggle('slow').addClass('exposed');    //show selected item's description, flag exposure 
     }); 

}); 
+0

이미 노출 된 (그리고 나중에 숨겨 질 수있는) 요소가 다시 노출 될 수 없도록하려면 하시겠습니까? 아니면 주위에있는 다른 방법 일 수도 있습니다. 실제로 당신은 그것을 경험하고 있으며 그것을 원하지 않을 것입니다. (코드가 어떻게 보이는지) – ub1k

+0

아니요, 다시 트리거 할 수 있어야합니다. 테이블 행에 적용됩니다. 사용자가 클릭하면 더 많은 정보를 얻습니다. 다른 요소를 클릭하면 이전 요소의 'more'내용이 숨겨지고 새 행의 정보가 표시됩니다. 이 특정 질문은 특히 사용자가 이미 펼쳐진 행을 클릭하면 다시로드되지 않도록합니다. – sdowswell

답변

0
난 이미 당신은 요소가 아직 표시되어 있는지 :visible 필터 선택과 is을 사용할 수 있습니다

를 표시되고 있는지 디스플레이를 다시하고 싶지 않아

그렇다면 다음과 같이 을 사용하여 함수를 종료해야합니다.

if ('.yourelementclass').is(':visible')){ 
    return false; 
} 

실제로 이미지를 표시하는 코드 바로 앞에 코드를 넣어야합니다.

+0

우수! 매력처럼 작동합니다. – sdowswell

+0

환영합니다 – Sarfraz

+1

@sdowswell : 매력처럼 작동하는 경우 -> 답변을 수락 한 것으로 표시합니다. – ub1k

관련 문제