Jquery Ajax Загрузка обратного вызова до завершения загрузки

Я использую довольно простую загрузку JQuery Ajax, и она работает хорошо везде, кроме одного элемента. Область загружается после завершения загрузки страницы, а затем связывает все ссылки для удаления с отправкой в ​​формате ajaxform. Это работает 100%, пока не будет использована кнопка удаления. Контент перезагружается правильно, но перепривязка, кажется, происходит до того, как он полностью загрузится, поскольку не перепривязывает ссылки для удаления. Проверка размера коллекции элементов показывает, что она все еще включает удаленный элемент (например, показывает 5, когда их только 4).

Вот код:

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);
13.10.2009 07:44:52
2 ОТВЕТА
РЕШЕНИЕ

Возможно, самый простой способ - использовать живые события jQuery. Они автоматически восстанавливаются при добавлении нового содержимого в документ. Вместо этой строки:

$("a.CostActivityDeleteImage").click(function() {

Вы можете использовать это:

$("a.CostActivityDeleteImage").live('click', function() {
1
13.10.2009 08:00:49

В этом фрагменте кода, что делает ShowAjaxProgressIndicator?

function AjaxLoadCostActivities(CallBack) {
    ShowAjaxProgressIndicator(id_CostActivitiesListing);
    id_CostActivitiesListing.load(url_LoadCostActivities, CallBack);
}

Выполняет ли ShowAjaxProgressIndicator асинхронный код, который должен выполнять загрузку обратного вызова, а не сразу после?

0
13.10.2009 07:56:31