2012-04-24 3 views
4

커서를 넘기고 각 tr에 대해 클릭 할 때 두 줄 테이블에 표시되는 각 행에 마우스를 올려 놓고 초점을 맞추는 데 사용하는이 함수가 있습니다. 잘 작동하지만 속도가 느려지고 이유를 이해할 수 없어 IE에 문제가 있습니다. 누구든지이 기능의 성능을 향상시키는 방법을 말해 줄 수 있습니까?IE에서 jQuery 함수 성능

확인 라이브 예 :

function rowSelection(){ 
     var rows = $('.interactive tr'); 
     rows.click(function() { 
      var i = $(this).GetIndex() + 1; // nth-child is 1-based 
      rows.removeClass('selectedRow'); 
      rows.filter(':nth-child(' + i + ')').addClass('selectedRow'); 
     }); 
     rows.hover(function(){ 
      var i = $(this).GetIndex() + 1; 
      rows.filter(':nth-child(' + i + ')').addClass('hoverx'); 
     },function(){   
      rows.removeClass('hoverx'); 
     }); 
    }; 

jQuery.fn.GetIndex = function(){ 
    return $(this).parent().children().index($(this)); 
} 

http://mainpage.ueuo.com/ 감사합니다.

답변

0

는이

$(document).ready(function(){ 

$(".interactive tr").hover(function() { 
    $(this).addClass("hoverx"); 
    }, function() { 
    $(this).removeClass("hoverx"); 
    }); 

$(".interactive tr").click(function() { 
    $(".interactive tr.selectedRow").removeClass("selectedRow"); 
    $(this).addClass("selectedRow"); 
    });​ 
}); 
+0

좋은데, 두 테이블 모두에서 작동하지 않는데, 필자는 필자의 기능을 사용하는 줄에 두 개의 테이블을 표시했습니다. 마우스를 가져 가면 각 행에 대해 두 테이블에서 동시에 작동합니다. 함수를 사용하여 라이브 예제를 확인하십시오 (그리고 올바른 동작을보기 위해 필자 함수를 추가하려고 시도한 후). http://jsfiddle.net/Ksb2W/41/ – RulerNature

+0

내 편집 된 대답보기 또는 http://jsfiddle.net/dharmesh_guna를 참조하십시오./Ksb2W/43/ – Dharmesh

+0

첫 번째 테이블에서만 작동합니다. 설명의 실제 예제를 참조하여 두 테이블에서 동시에 작동하는 방법 (가리키고 포커스), 첫 번째 테이블에서만 작동하는 바이올린 예제에서 볼 수 있습니다. – RulerNature

1

이없는 대신 CSS 기반의 호버를 사용할 수하려고? 그것은 모든 브라우저, 특히 IE에서 더 잘 수행됩니다.

.interactive tr:hover td { 
    background: lime !important; 
} 

자바 스크립트/jQuery를 고수 할 경우

, 그럼 난 당신이 제거하는 것이 좋습니다 : 이것은 IE8 모드를 사용하도록 IE를 강요

<meta http-equiv="X-UA-Compatible" content="IE=8"> 

. IE8 모드는 IE9 모드보다 느립니다.

+0

하지만 IE6에서는 tr 위로 마우스를 가져 가면 작동하지 않습니다. – Dharmesh

+1

@Dharmesh : IE6 지원이 필요한 경우 JavaScript를 사용하여이를 향상시킬 수 있지만 IE6에서는 *에만 사용할 수 있습니다. 왜 모든 브라우저에 "느린"버전을 제공할까요? IE6 인 오래된 오랜 김이 모여 들었습니다. – thirtydot

+0

ie8-8 – RulerNature