나는 이것을 사용해야합니다. .live와 같은 것이 작동하도록하려면 여기에 h3ll을 혼동합니다.jQuery가 ldiv 내용을 새로 고친 후 작동하지 않습니다.
DB에서 가져온 데이터 목록이 있습니다. 각 항목에는 데이터베이스에서 항목을 삭제하기 위해 첨부 된 양식이 있습니다.
확인 여기에 양식에 대한 기능을 제출하는 것입니다 :
$(document).delegate('#delete_cat_form','submit', function() {
var cat = $('#cat-name-imput').val(),
id = $('#cat-id-imput').val();
$.post("ajax.php", {name:cat,id:id,action:'delete_cat'}, function(data){
//Display a brief message!
$("#message").fadeIn(3000).html(data);
$("#message").fadeOut(3000).html(data);
refreshMenu(); // Refresh Menu
});
return false;
});
새로 고침 메뉴 기능이 있습니다 :
function refreshMenu(){
$('.menu-million-dollar-wrapper').load('ajax.php', {action:'refreshMenu'}, function(data){
});
}
기능은 한 번만 문서의 초기로드에서 작동하지만. 아약스가 ajax.php에서 업데이트 쿼리를 반환하면 모든 이벤트 핸들러가 사라지고 다시 작동하지 않는 것처럼 보입니다.
나는 다른 대답을 시도해 보았지만 그 이유는 같을 수는 있지만 몇 가지 이유로 그 개념을 파악할 수는 없습니다.
새 콘텐츠에 대한 쿼리를 수행하고 표시하는 동시에 어떻게 이벤트 처리기를 느슨하게 할 수 있습니까? 여기
호출 반환 ajax.php .. 이것은 원시하지만 난 적은 더 많은 항목이 똑같은 HTML을 반환 않음을 확인하지만, 업데이트 한 것입니다<form class="edit-button" method="post" action="'.$_SERVER['PHP_SELF'].'">
<input type="hidden" name="name" value="'.$row['name'].'"/>
<input type="hidden" name="id" value="'.$row['id'].'"/>
<input type="hidden" name="action" value="delete_cat"/>
<input type="submit" value="Delete"/>
</form>
$_SERVER['PHP_SELF']
는 정확하지 않지만해야 이 문제에서 역할을하지 못한다.
이것은 처음로드시 양식을 표시하는 데 사용되는 것과 동일한 코드입니다.
html 구조를 볼 수 있습니까? '# delete_cat_form'이 새로운 내용으로 대체되고있는 것 같습니다. –
관련이 없지만'{name : cat, id : id, action : 'delete_cat'}'대신'$ (this) .serialize()'를 사용해야합니다. 예를 들어 필드를 추가하려면 양식을 최신 상태로 유지해야합니다. – Robin
'
' –