2013-02-02 3 views
2

Ajax 호출에서 작성중인 테이블 행이 있습니다. 나는 onlclick 이벤트를 연관시키고 싶다. 제가 는 그래서 클릭 이벤트의 배열 요소를 잡을 수없는이다테이블 행의 onclick 이벤트에 값을 전달하십시오.

var d = $.parseJSON(data.codes); 

for (var i = 0; i < d.length; i++) { 
    var currentRow = $('<tr>'); 
    currentRow.append($('<td>').html(d[i].id)); 
    currentRow.attr("class", "sourceCodeRow grid-row"); 
    currentRow.append($('<td>').html(d[i].name)); 
    currentRow.append($('<td>').html(d[i].description)); 

    currentRow.click(function (f) { 
    //want to display name from d[i] 
    // alert(d[i].name); 

    }); 

    $('#table-id').append(currentRow); 
} 
+0

이 유 내 코드 좋은 – Madbreaks

+0

를 수정하십시오 $ (이)를 사용할 필요가 있다고 생각합니다. 그것은 일했다! 덕분에 –

답변

1

이유 ([I] 아래에 표시된 코드에 따라 D) 나 이송하고 어레이에서 요소를 통과 할 수없는 오전 이것은 작동하지 않습니다 for 루프 인덱스는 더 이상 당신이 기대하는 것입니다, 왜냐하면 for 루프는 행이 클릭되면 루핑을 마쳤 기 때문입니다.

currentRow.data('name',d[i].name); 
currentRow.click(function(f) { 
     //want to display name from d[i] 
     alert($(this).data('name')); 

}); 

을하거나 전체 개체에 액세스해야하는 경우, 단지 대신한다는 설정 : 당신은 클릭 이벤트 내에서 액세스 할 수있는 변수에 이름을 설정해야합니다, 난 그냥 데이터의 이름을 저장합니다 :

currentRow.data('obj',d[i]); 
currentRow.click(function(f) { 
     //want to display name from d[i] 
     alert($(this).data('obj').name); 

}); 
+0

에없는 것을 알려 주시기 바랍니다 수있는 코드 –

+0

네 이것이 정확히 내가 뭘 찾았는지 –

+0

@gabhi - 대단해! 정답을 표시하는 것을 잊지 마세요 :) –

관련 문제