JQuery를 사용하여 테이블에 행을 추가하고 있습니다. 행 내에서 나는 캡쳐하고있는 클릭 이벤트 요소를 가지고 있습니다.JQuery ajax 및 dom issue
$(document).ready(function() {
var newRow = "<tr> ... </tr>";
$('tableName > tbody:last').append(newRow);
$(...).click(function() { // click event on newly inserted elem in the row
alert("click");
});
}
위대한 작품과 경고가 예상대로 나타납니다. 지금 아약스 호출을 통해 동적으로 새 행을 추가하고 XML을 구문 분석 할 때, 그것은 작동하지 않습니다 :
$(document).ready(function() {
getData();
$(...).click(function() { // click event on newly inserted elem in the row
alert("click");
});
function getData() {
$.ajax({
...
success: function(data) {
//parse the xml
$('tableName > tbody:last').append(parsedXml);
}
});
}
HTML 올바르게 DOM에 추가되지만 클릭 이벤트는 더 이상 캡처입니다. 범위 나 종결에 문제가 있습니까?
감사합니다. 왜 이것이 효과가 있었는지 설명해 주시겠습니까? 내 말은, DOM 요소가 생성 된 후 클릭 핸들러를 만드는 중입니다 ... 어느 쪽이든 나를 아프게하면 대답을 수락합니다. – aeq
아약스 호출이 비동기 적이기 때문에입니까? 따라서 본질적으로 처리기를 등록하기 전에 DOM을 실제로 생성하지 않습니다. – aeq
기본적으로 .live()는 새 요소가 페이지에 추가 될 때 필요합니다. 아약스 또는 클릭 기능 내에 추가하는 요소 만 포함됩니다. dom의 기본 규칙은 .live()를 사용하여 DOM을 변경하는 경우입니다. 더 많은 정보 링크를 내 대답에 대한 자세한 내용은 체크 아웃하십시오 :) – lnrbob