2012-09-06 1 views
0

안녕하세요, 저는 두 개의 HTML 테이블을 가지고 있습니다. 모든 셀 값이 3 초 간격으로 변경됩니다. 또한 셀이 변경되면 이전주기에서 설정 한 셀 값에 따라 셀의 배경색을 설정합니다. 그 동안 2 초 후에 배경색을 재설정하기 위해 셀에 settimeout 기능을 설정하고 있습니다.SetTimeOut 함수가 테이블의 모든 셀 색상을 재설정하지 못함

내 문제는 매 2 초입니다. 셀의 색상을 재설정해야하지만 setTimeout 기능은 마지막 셀에서만 작동합니다.

참고 : 내 응용 프로그램에서 모든 세포는 자신의주기가 너무 세포의 색상은 소유자 (셀)에 대한 작업을해야 다시 설정하라는 변경되고있다. 같은 시간에 아닙니다.

예를 들어 JsFiddle에 생성했습니다. 누구든지 나를 도울 수 있습니까?

답변

0

이것은 고전적인 "폐쇄 루프"문제입니다. 이미 다른 내부 클로저를 만들어 로컬 컨텍스트를 포함 시키려고했지만 매개 변수를 놓쳤습니다 (비교 대신 할당하려면 ==를 사용했습니다)

편집 : 다음 번에 jsfiddle 그래서이 글은 외부 참조없이 자체에 대한

  _cellColorTimeouts[obj] = setTimeout((function(_cell, _obj) { 
       return function() { 
        debugger; 
        _cell.css({ 
         "background-color":"white", 
         "color":"black" 
        }); 

        _cellColorTimeouts[_obj] = null; 
        clearTimeout(_cellColorTimeouts[_obj]); 
       }; 
      })(cell,obj), 2000); 

EDIT3을 설 수 :이 바이올린을 참조하십시오 http://jsfiddle.net/7FXtL/10/

+0

업데이트 된 바이올린 내와 정확히 동일합니다 : SI가이 업데이트되지 않은 것 같아요. 내가 너 같은 코드를 변경했기 때문에 다시 보낼 수는 있겠지만 마지막 셀조차도 그 색깔을 되 돌리지 않았다. – afacanerman

+0

미안하지만, 제 화면에서 잘 작동하고 있었지만 다른 사람들을 위해 바이올린을 업데이트하는 것을 잊어 버렸습니다 :-) 최신 편집본보기 – devnull69

+0

건배 친구들 – afacanerman

관련 문제