2011-05-13 5 views
2

사용자가 링크를 클릭하면 요소를 표시하고 숨기는 간단한 기능이 있습니다.jquery로 tablerow 요소 숨기기 및 표시

그것은 현재와 같은 설정은 다음과 같습니다

$('div.box table a').click(function (e) { 

    stopEvent(e); 
    var self = $(this); 

    if ($("#" + self.text()).css('display', 'none')) { 
     $("#" + self.text()).show('slow'); 

     return; 
    } 
    else if ($("#" + self.text()).css('display', 'table-row')) { 
     $("#" + self.text()).hide(); 

     return; 
    } 

}); 

을 그러니까 기본적으로, 사용자가 링크를 클릭하면, 내가 링크의 텍스트 인 ID를 가지고있는 tablerow를 얻을. 나는 또한 표시 또는 숨길 지 여부를 결정하기 위해 tr의 "표시"태그를 확인합니다.

슬프게도 지옥과 은신처가 모두 작동하지 않으므로 슬프게도 버그가 있습니다.

도움 주시면 감사하겠습니다.

편집 : HTML 부분, 요청에 따라 :

 <% bool even = true; 
      foreach (var item in ViewBag.NefList) 
      {%> 
       <tr <%: even? "class=even" : "" %>> 
        <td><%: Html.ActionLink(item.Artno, "action", new { artno = item.Artno, week = ViewBag.Week, projectID = item.projectID })%></td> 
        <td><%: item.projectName%></td> 
        <td><%: item.qty%></td> 
        <td><%: item.totalStock%></td> 
        <td><%: item.Description%></td> 
       </tr> 
       <tr <%: even? "class=even" : "" %> style="display: none" id ="<%: item.Artno %>"> <td>Hello</td></tr> 
     <% even = !even; 
      } %> 
</table> 
+0

html 부분도 표시 할 수 있습니까? – Headshota

답변

2

당신은 요소를 볼 수 있는지 확인하기 위해 검사에 오류가 있습니다. 토글 방법이이를 처리합니다.

$('div.box table a').click(function (e) { 
    var self = $(this); 
    e.preventDefault 

    $("#" self.text()).toggle('slow'); 
}); 
+0

감사합니다. 그 기능에 대해 몰랐어요 :) –

+0

당신이 가진 문제를 해결 했습니까? – wewals

+0

그래! 고마워요! –

0

이 시도,

else if ($("#" + self.text()).css('display', 'block')) { 
      $("#" + self.text()).hide(); 

      return; 
     } 
+0

'if' 절에 넣는 조건이 아닙니다. 이것은 CSS 스타일 설정 호출입니다. –

0

요소가 표시인지 아닌지를 사용

if ($("#" + self.text()).is(':visible')) { 

확인합니다. 그에 따라 행동하십시오.

마찬가지로, .toggle() 메서드를 사용하여 jQuery로 요소를 표시하거나 숨길 수 있습니다.

관련 문제