2014-06-15 5 views
0
for (var x = 0; x < 10; x++) { 
      //var xx = x; 
      for (var y = 0; y < 10; y++) { 
       //var yy = y; 
       displayboxs[x][y][1].on('click', function() { 
        displayboxs[x][y][0] = 'P'; 
       }); 
      } 
     } 

그래서 이것은 displaboxs [x] [y] [0] = 'P'; 부분 오류가 발생했습니다. 나는 내가 시도하는 방식으로 배열을 변경하려고 시도하는 것이 불행히도 그러나 수동으로 각 이벤트를 추가하지 않으면 불행히도 내가 할 수있는 유일한 방법이라는 것을 알았다. 또한 x와 y 변수를 다른 변수에 저장함으로써 오류를 방지 할 수 있다는 것을 알았지 만 (주석 처리 된 코드 부분은 이것을 보여 줍니다.) 그러나 이상한 결과가납니다. 예를 들어, 변경된 후에 변경된 배열의 영역을 'P'로 인쇄하는 경우, 배열의 많은 위치를 'P'로 변경하고 전체 배열을 인쇄하면 모든 요소가 여전히 설정됩니다. 'P'배열의 마지막 지점을 기본값으로 실행합니다. 이상한가? 모든 제안은 높이 평가됩니다 !!! 친구들을 읽어 줘서 고마워.KineticJS 배열에있는 객체에 이벤트 추가하기

답변

0

하나의 문제는 클릭이 발사 될 때 범위 밖 y는 길이, 즉 X이다. displayboxs 각 displayboxs [X] [Y] [1]에 대한 참조를 제공하여

팩터 [X] [Y] [0]를 클릭 할 때 변경한다고. 이 같은

뭔가 (경고 ... 테스트되지 않은 코드!) :

for (var x = 0; x < 10; x++) { 
    for (var y = 0; y < 10; y++) { 
     displayboxs[x][y][1].on('click', function() { 
      this.myZero = 'P'; 
     }); 
     (displayboxs[x][y][1]).myZero=displayboxs[x][y][0]; 
    } 
} 
+0

그래 내가 실제로 어쨌든 도움을 익명 함수하지만 덕분에 사용하기 쉬운 솔루션을 알아 냈 범위 물건의 밖으로에 대한 UR 좋아. 나는 너의 해결책을 이해하기에는 너무 신인이긴하지만 어쩌면 다른 누군가를 도울 것이라고 인정할 것이다. :) –

관련 문제