2009-07-03 7 views
0

모눈 내의 행에 호버 상태를 제공하기위한 최상의 수행 스크립트를 찾고 있습니다. 그리드는 일부 세포가 내부 테이블이 표준 테이블JQuery - 모눈 행 강조 모범 사례

가져 : 사용자의

90 %가 6으로 클라이언트가 그러므로 내가 CSS에 의존하지 못할 수 있습니다.

원래 mouseover 및 mouseout과 함께 .live 메소드를 사용하기 시작했으나 이벤트가 문서 mouseover에 위임됨에 따라 그리드가없는 페이지 부분 위로 마우스를 움직일 때 엄청난 CPU 관련 사항이 있습니다.

각 개인에게 바인딩하고 싶지 않습니다.

현재 tbody에서 이벤트 위임을 사용하고 .parents 메서드를 사용하여 대상 노드 트리에서 마지막 테이블 행을 가져옵니다. 이런 이유로 가장 가까운 ('tr')을 사용할 수 없습니다.

거친 현재 구현 : 환영

//event hookup 
$('table.grid>tbody') 
    .mouseover(rowenter) 
    .mouseout(rowleave); 

function rowenter(ev){ 
    ev.stopPropagation(); 
    var $parentTr = $(ev.target).parents('tr:last'); 
    if (! $parentTr.is('.hover')){ 
     $parentTr.addClass('hover'); 
    } 
} 

더 나은 구현. 모든 최신 브라우저에

+0

그들은 여전히 ​​IE6를 사용하고 있습니까? 시간 낭비. IE6과 호환되도록 페이지를 작성하는 사람이 적을수록 좋습니다. 미래에이 사람들을 걷어 찬다. – Sneakyness

+0

정부 사용자는 업그레이 드를 용이하게하기 위해 수백만 달러가들 것입니다. – redsquare

+0

사실 나는 투표를하지 않았지만 내 질문과 답변 모두를 투표 해 주셔서 감사합니다 :) – doomspork

답변

-1

제 질문의 해결책은 네이티브 이벤트 위임을 사용하여 가장 빠른 구현입니다.

+0

와우, 정확한 자신의 게시물을 표시 ... – doomspork

2

떨어져 IE6에서 당신은 CSS와 함께이 작업을 수행 할 수 있습니다

tr:hover (background-color:yellow) 

이 주위의 모든 성능 문제를 얻어야한다.

+0

질문의 업데이트 - 사용자의 90 %가 ie6 – redsquare

+1

그런 경우에는 이벤트 위임을 사용하는 것이 좋다고 생각합니다. 여전히 더 나은 성능이 필요한 경우 jQuery 또는 IE6 용 .htc 비헤이비어 파일을 사용하지 않을 수도 있습니다. 불행히도 IE6 + 테이블 + js = 성능 문제 :-( – edeverett