2009-11-17 3 views
1

Я использую ASP.NET MVC C#jQuery callback происходит слишком быстро?

У меня есть вызов jQuery, который удаляет книгу, а затем в обратном вызове я вызываю функцию, которая обновляет список книг.

function rembook(id) { 
     var agree=confirm("Deletion cannot be undone. Continue?"); 
     if (agree) 
     { 
      jQuery.ajax({ url: "/Books/Delete/" + id, dataType: null, type: "POST", cache: true, callback: LoadBooks(), data: null }); 
      return false; 
     } 
     else 
      return false; 
    } 

Вот LoadBooks(), если это имеет значение:

function LoadBooks() { 
     $(".BookList").hide(); 
     $(".BookList").load("/Books/Edit/<%= Model.AuthorID %>"); 
     $(".BookList").show('slow'); 
    } 

Почтовые работы и LoadBooks() вызывается функция. Однако обновленный список книг по-прежнему содержит удаленную книгу. Если я вручную вызову функцию LoadBooks() (по ссылке на странице), книги затем перезагрузятся без удаленной книги. Почему первая перезагрузка Книги все еще показывает удаленную книгу? Происходит ли это до завершения фактического удаления Книги?

(я получить те же результаты с $ .post ("/ Книги/удалять /" + идентификатор, LoadProperties());)

Спасибо.

ответ

11

callback: LoadBooks() должно быть всего callback: LoadBooks,.

С помощью callback: LoadBooks() вы устанавливаете обратный вызов на значение функции, а не сама функция.

Кроме того, я думаю, что это должно быть complete не callback.

+0

Вы правы во всех отношениях! Большое спасибо. – johnnycakes

Смежные вопросы