我知道我需要使用。像。活着得到這個工作,但我只是在這裏混淆h3ll。刷新ldiv內容後jQuery不工作
我有一個從數據庫中拉出的數據列表。每個項目都附有一個表格,用於從數據庫中刪除該項目。這裏
OK是對錶單提交功能:
$(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從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'正在被新內容取代。 –
不相關,但您應該使用'$(this).serialize()'而不是'{name:cat,id:id,action:'delete_cat'}'。如果你想添加一個字段,你只需要保持你的表單是最新的。 – Robin
'
' –