2011-08-13 3 views
1

테이블이 있는데 원하는 작업 : 테이블의 항목을 클릭 할 때마다이 항목이 다른 테이블에 추가됩니다. 이건 내 코드입니다 :jquery의 event.target

$("#listResult table td").click(function(e){ 
    $("#addGroupMemberOfAdd").click(function(){ 
     alert("Add to List Member"); 
     $("#listMember table").append(
      '<tr><td style="padding-left: 5px;">'+$(e.target).attr('rel')+'</td></tr>'); 
     return false; 
    }) 
    return false; 
}) 

그러나 문제가 encounted : 하나 개의 테이블이 3 개 항목이있는 경우, 나는, 항목 1은, 다른 테이블에 추가 항목 1을 클릭하지만 항목 2를 클릭하면, 항목 1이 추가됩니다 다른 테이블이 다시이 item2가이 테이블에 추가됩니다. 그것을 고치는 방법 ????

+0

문제를 나타내는 [jsFiddle] (http://jsfiddle.net)을 주선 해주세요. –

+0

왜 클릭 핸들러를 중첩합니까? 항목을 클릭하면 클릭 핸들러를 다른 항목에 연결합니다. –

+0

@Ronald 나는 똑같은 것을 물어볼 예정였다. 이중 중첩 처리기를 이해하지 못합니다. Rikudo가 언급했듯이이 코드를 jsfiddle에 추가하고 정확히 무엇을하고 싶은지 설명 할 수 있습니다. 테이블 항목을 table1에서 table2로 또는 그 반대로 이동할 수 있도록 하시겠습니까? – Matt

답변

0

그냥 추측 : 두 번째 이벤트가 발생하면 이벤트 객체 (따라서 대상이 변경되었을 수 있음)가 변경되었을 수 있습니다.

(I 코드를 읽는 방법 : TD를 클릭하면, 두 번째 클릭 (예를 들면 OK 버튼)이 그 콘텐츠의 이동 또는 즉시이 두 번째 이벤트 불을한다.?)

내가 다른를 제안 솔루션 : 첫 번째 클릭은 "활성"td를 나타내는 변수를 설정하고, 두 번째 클릭은이 변수에 액세스하여 어떤 td를 이동/추가할지 확인합니다. 이 방법으로, td를 클릭 할 때마다 생성 된 이러한 익명의 함수 (클로저)를 피할 수 있습니다.