2010-08-13 8 views
1

그래서 내가 jQuery를 사용하고 내가 뭘 원하는지 (> 100 행)에 대한 오히려 큰 테이블이 있습니다. 모든 행에 대해, 내가 그것을에서 작업 꽤을하고 싶습니다, 내 질문에 내가자바 스크립트로 점진적으로 스타일을 지정하는 방법은 무엇입니까?

$('#tableid>tr').each(function(i){some code here});

이 있으면 얼마나 내가 5의 배수를 명중하고 바로 효과를 넣어 때 내가 처리를 중지 할 브라우저에서 먼저 열어서 사용자가 멈추지 않고 대화 할 수 있습니다.

고맙습니다.

제이슨

+2

이 여전히 꽤 빨리해야한다, 심지어 100 +에 대한 행, 즉'.each() '안에 무엇? –

+0

FurtiveFelon -이 문제가 해결 되었습니까? – user113716

답변

0

그것을 밖으로 시도 :http://jsfiddle.net/5E3gs/

var $trs = $('#tableid tr'); 

for(var i = 0, len = $trs.length; i < len; i = i + 5) { 
    (function(i) { 
     setTimeout(function() { 
      $trs.slice(i,i + 5).addClass('yellow'); 
     }, (500 * (i/5))); 
    })(i); 
}; 
0

흐뭇합니다. 재귀 적으로 함수를 호출하기 위해 setTimeout을 사용하는 것은 어떻습니까?

0

5의 배수가 아니지만 setTimeout을 사용하여 이벤트를 대기열에 넣고 이벤트가 발생하면 사용자가 페이지와 상호 작용할 수 있습니다. 같은

뭔가 :

$('#tableid>tr').each(function(i, e){ setTimeout(function(){ OtherFunc(e); }, (100 * i)) }); 

function OtherFunc(e) { 
    /* processing code */ 
} 

가 필요에 따라 매개 변수 (특히이 100ms 단위)를 조정,하지만 당신은 아이디어를 얻을.

0
for(var i=0 ; i<$('#tableid>tr').length ; i+=5){ 
    var sliceEnd = i+4 > $('#tableid>tr').length-1 ? $('#tableid>tr').length-1 : i+4; 
    $('#tableid>tr').slice(i,sliceEnd).each(function(i){some code here}); 
} 

트릭을해야합니다.

관련 문제