我正在使用一些非常简单的JQuery Ajax加载,除了一个项目之外,它可以在任何地方使用。在页面完成加载后加载该区域,然后将所有删除链接绑定到ajaxform提交。这将100%工作,直到使用删除按钮。内容重新加载正确但重新绑定似乎在它完全加载之前发生,因为它没有重新绑定删除链接。检查元素集合的大小表明它仍包含已删除的项目(例如,当只有4时显示5)。
以下是代码:
function AjaxLoadCostActivities(CallBack) {
ShowAjaxProgressIndicator(id_CostActivitiesListing);
id_CostActivitiesListing.load(url_LoadCostActivities, CallBack);
}
function PrepareCostActivitiesForm() {
// Submits the form for the delete image button
$("a.CostActivityDeleteImage").click(function() {
if (confirm("Are you sure you want to delete this record?")) {
$(this).parent().ajaxSubmit({
target: id_CostActivitiesListing,
success: AjaxLoadCostActivities(PrepareCostActivitiesForm)
});
return false;
}
return false;
});
}
// This is the call that loads the content on page load
// CostActivitiesStartup is just a function that does some unrelated stuff but also
// calls PrepareCostActivitiesForm to prepare the delete forms.
AjaxLoadCostActivities(CostActivitiesStartup);
答案 0 :(得分:1)
最简单的方法可能是使用jQuery的直播活动。当新内容注入文档时,这些会自动反弹。而不是这一行:
$("a.CostActivityDeleteImage").click(function() {
您可以使用:
$("a.CostActivityDeleteImage").live('click', function() {
答案 1 :(得分:0)
在这段代码中,ShowAjaxProgressIndicator做了什么?
function AjaxLoadCostActivities(CallBack) {
ShowAjaxProgressIndicator(id_CostActivitiesListing);
id_CostActivitiesListing.load(url_LoadCostActivities, CallBack);
}
ShowAjaxProgressIndicator是否执行异步代码,该代码应该在回调时执行.load而不是立即执行?