2013-04-01 3 views
0

A 내가하는 일에 대한 설명.다차원 배열 안의 요소에 클릭 이벤트 추가

나는 그 안에 방문 카드를 가지고있는 li을 가지고 있으며, amout은 다양하다. 나는 내가 추가 한 visting 카드의 설명을 보여주기 위해 여분의 li을 추가하고 싶다. 예를 들어 내가 1, 2 또는 3 번째 카드를 클릭하면 4 위를 클릭하면 4 위를 추가하고 5 위 또는 6 위를 누른다면 7 위에 새 리를 추가하려고합니다.

이렇게하려면 li을 배열 안의 3 개의 li을 갖는 다차원 배열로 분할하는 함수를 만들었습니다. 그 mulidimensinal 배열은 청크입니다. 지금 나는 그 편지를 얻었다. 그러나 나는 새로운 장소를 나의 필요한 장소에 붙일 수 없다.

그리고 난이 오류 형식 오류를 얻고있다 : 덩어리 [내가]

을 정의되지 않는다 그리고 일이 일어나고 있는지 왜 내가

chunks[i] is undefined

chunks = [ 
    [li.pL14, li, li.pR15], 
    [li.pL14, li, li.pR15], 
    [li.pL14, li, li.pR15], 
    [li.pL14, li, li.pR15], 
    [li.pL14, li, li.pR15] 
] 

for (var i=0; i<chunks.length; i++) {  
    for (var j=0; j<chunks[i].length; j++) { 
     $(chunks[i][j]).click(function() { 
      $(chunks[i][j]).append('<li class="description"> <div class="cardDesCont mT1Mi"></div></li>'); 
     }); 
    } 
} 

아래의 코드를 부여?

+0

모든 요소에 클릭 이벤트를 추가하는 이유는 무엇입니까? 이벤트 위임을 부모에게 사용하여 처리하십시오. – epascarello

+1

이것은 두 번째로 당신이 물었습니다, 당신의 [첫 번째 질문]에서 무엇을하지 않았습니까 (http://stackoverflow.com/questions/15739652/adding-click-event-for-array-elements-in-javasctipt)? – adeneo

+0

''''로 정의 된 것은 무엇입니까? –

답변

1

i++ 여기에 j++이 있어야합니다. 내부 루프에 있습니다. 따라서 배열 경계를 넘어서 i을 증가시키고 있습니다. 코드는 다음과 같아야합니다.

for (var i=0; i<chunks.length; i++) { 
    for (var j=0; j<chunks[i].length; j++) { 
     // --------------------- HERE ^^^ 
     $(chunks[i][j]).click(function() { 
      console.log('script works'); 
     }); 
    } 
} 
관련 문제