2014-04-10 2 views
0

div의 복제본을 만들고 있지만 불행히도 복제 된 div에 이벤트 수신기를 추가 할 수 없습니다.Jquery를 사용하여 이벤트 리스너 추가

clone(true,true)을 사용해 보았지만 여전히 실행되지 않았습니다.

어떤 사람은 다음에 이미지를 클릭

JS fiddle for clone

함께 제발 도와 그리고,

코드 내가 이벤트 리스너

$("#add").on('click',function() { 
    $("#cont").clone(true, true).appendTo(".container"); 

}); 
+4

중복 ID주의! – undefined

+2

@Sandy :'live'는 jQuery 최신 버전에서 더 이상 사용되지 않습니다. – xyz

+2

@Sandy'.live()'는 더 이상 사용되지 않습니다 –

답변

3

를 추가하려고 새로운 사업부를 추가 할 수 먼저 contid을 복수로 변경해야합니다. id 나쁜 것이고 제대로 작동하지 않을 것입니다. $('.cont') 다음 노드를 복제 :

둘째, 당신은 모든 cont 클래스를 잡는에서 얻을 반환 jQuery를 노드 목록에서 첫 번째를 잡기 위해 jQuery의 first 방법을 사용합니다. 첫 번째 페이지 만 잡으면 페이지의 div를 다시 여러 페이지에 추가하게됩니다.

$(".cont").first().clone(true, true).appendTo(".container"); 

셋째, 클래스에 deleteid을 변경합니다.

넷째, DOM에 추가하기 때문에 이벤트를 제대로 잡으려면 부모 노드에서 event delegation을 사용해야합니다. closest을 사용하여 가장 가까운 cont 클래스를 찾아서 제거하십시오. 이 도움이

$('.container').on('click', '.delete', function() { 
    $(this).closest('.cont').hide(); 
}); 

Fiddle

희망.