2011-09-10 3 views
0

나는 MVC 응용 프로그램을하고 난 내 테이블 행을 클릭하고 나는 그 위에 마우스를 가져 가면 다음, 나는 그것의 배경을 변경할 수 있도록합니다.메이크업 테이블 행 클릭 + 호버 변경 배경

I가 내가 호버 기능을 추가하고 싶었

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#example tbody tr').click(function() { 
      alert('row was clicked'); 
     }); 
    });  

</script> 

블로그에서 가져온, 그래서 그것을 수정 한 다음 코드를

$<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#example tbody tr').click(function() { 
      alert('row was clicked'); 
     }); 
    }); 

    $(document).ready(function() { 
     $('#example tbody tr').hover(function() { 
      $(this).css('background-color','#ccc'); 
     }, function() { 
      $(this).css('background-color','#fff'); 
    }); 
</script> 

내 HTML :

<table id="example" border = "2"> 
    <thead> 
    <tr style="border-style:solid" class="simplehighlight"> 
     <th> 
      Name 
     </th> 
     <th> 
      Description 
     </th> 
     <th> 
      tblStatu 
     </th> 
     <th> 
      DueDate 
     </th> 
     <th> 
      AssignedTo 
     </th> 
     <th> 
      CreatedOn 
     </th> 
     <th> 
      CreatedBy 
     </th> 
     <th> 
      ModifiedOn 
     </th> 
     <th> 
      ModifiedBy 
     </th> 
     <th></th> 
    </tr> 
    </thead> 


    <tbody> 
@foreach (var item in Model) 
{ 
    <tr style="border-style:solid"> 
     <td style="border-style:solid"> 
      @item.Name 

      @*@Html.DisplayFor(modelItem => item.Name)*@ 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.Description) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.tblStatu.Name) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.DueDate) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.AssignedTo) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.CreatedOn) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.CreatedBy) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.ModifiedOn) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.ModifiedBy) 
     </td> 
     <td> 
      @Html.ActionLink("Edit", "Edit", new { id = item.TaskId }) | 
      @Html.ActionLink("Details", "Details", new { id = item.TaskId }) | 
      @Html.ActionLink("Delete", "Delete", new { id = item.TaskId }) 
     </td> 
    </tr> 
} 
    </tbody> 

클릭 처리기 작동하지만, 기능을 통해 호버하지 않습니다. 무엇이 문제 일 수 있습니까?

+4

(1) 서버 쪽 코드가 아닌 실제 렌더링 된 HTML을 게시하십시오. (2) "단지 효과가없는 것"은 무엇을 의미합니까? 오류가 있습니까? '그것''요소 내에 행을 일치하지만 행은' 내부에 : – lonesomeday

+1

당신의 선택은 잘못된 것입니다. –

+0

Frederic이 옳습니다. '$ ('# example tbody tr')'를'$ ('# example tr')'로 변경하십시오. 그리고 공중 선회 부분을 위해, 나는 CSS를 사용하는 것이 좋습니다. –

답변

4

, 당신이 준비가 두 번째 문서에 마감 });를 놓치고있는 것으로 나타났습니다 매니저. 다음을 시도하십시오. 공지 사항 하나의 준비된 핸들러를 사용하고 jQuery 기능을 동일한 선택자에 연결합니다. jQuery의 장점 중 일부입니다.

$<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#example tbody tr').click(function() { 
      alert('row was clicked'); 
     }).hover(function() { 
       $(this).css('background-color','#ccc'); 
      }, function() { 
       $(this).css('background-color','#fff'); 
     }); 
    }); 
</script> 

@Chris Pietschmann은 CSS를 사용하면 관리 할 코드가 줄어들어 동일한 효과를 얻을 수 있습니다.

<style> 
#example tbody tr:hover 
{ 
    background-color: #ccc; 
} 
</style> 
+0

모든 브라우저의 오류 콘솔을 살펴봄으로써 이것을 쉽게 찾을 수있었습니다. – Dennis

+0

@Dennis 의견이 일치하지 않습니다. 원래 질문에 비 작동 코드가 포함되지 않았으므로 다소 어려웠습니다. :-) – tvanfosson

+0

그건 완벽하게 작동합니다 !!!!!!! 건배!!!!! – TeaLeave

1

당신은 호버에 다른 배경 색상을 정의하는 CSS를 사용할 수 있습니다 질문에 귀하의 코멘트에서 코드를 추가 한 후

tr:hover 
{ 
    background: red; 
} 
+0

헤더의 행에도 적용됩니다. 원하지 않는 것 같습니다. 또한 모든 테이블에 적용되므로 한 테이블에서만 필요하면 훨씬 더 구체적인 선택기를 사용해야합니다. 테이블에 – tvanfosson

+0

@tvanfosson하거나 클래스'table.hoverable TR : 가져가 {...}' – Hogan