2014-09-23 3 views
0

replaceWith() 후에 bind()를 사용하여 이벤트를 추가해야하지만 replaceWith()가 실행 된 후에 만 ​​요소가 존재해야합니다. 요소를로드 한 후 이벤트를 추가하려면 어떻게합니까?replaceWith() 후 이벤트를 추가하는 방법은 무엇입니까?

 
$.ajax({ 
    type: 'GET', 
    url: trElement.find(".editRecord").attr("href") + '?id=' + tdId.html(), 
    success: function(data, textStatus, jqXHR) { 
     trElement.replaceWith(data); 
     trElement.find(".btnEditRecord").bind("click", save); 
     trElement.find(".btnCancelEditRecord").bind("click", cancel); 
    } 
}); 

당신이 할 수있는, 제발 모범을 :

내 코드는 다음과 같이 보입니다.

대단히 감사합니다.

+0

방금 ​​'trElement'를'data'로 대체 했으므로'trElement'가 사라 졌으므로 이벤트 핸들러를 추가하지 않고'data'에 이벤트 핸들러를 붙이십시오. 대신 – adeneo

+0

DOM을로드 할 때 이벤트 위임을 사용하므로 새 요소를 동적으로로드 한 후에 아무 것도 할 필요가 없습니다. http://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements를 참조하십시오. – Barmar

답변

0

replaceWith을 호출 한 후 해당 요소는 DOM에 더 이상 존재하지 않습니다.

var $data = $(data); 
trElement.replaceWith($data); 
$data.find(".btnEditRecord").bind("click", save); 
$data.find(".btnCancelEditRecord").bind("click", cancel);