Глобальный обратный вызов для вызовов Ajax в JQuery - PullRequest
7 голосов
/ 09 января 2010

Можно ли создать и присоединить функцию обратного вызова, которая будет вызываться при каждом выполнении ajax-запроса независимо от того, был ли выполнен вызов с использованием $.ajax, $.post, load или любой другой функции?

EDIT:

Решение, данное Nakul (используя глобальное событие ajaxSuccess), почти идеально. Однако у меня есть проблема при использовании этого с функцией load. Событие ajaxSuccess возникает после завершения запроса, но перед любой манипуляцией DOM. Я хотел бы выполнить некоторый код после того, как DOM был изменен. Мое временное решение - использовать setTimeout и ждать пару миллисекунд, но я не думаю, что это будет достаточно надежно для меня.

Итак, еще один вопрос: как выполнить код после того, как DOM был обработан функцией load?

РЕДАКТИРОВАТЬ 2:

Мне удалось решить вторую проблему, используя событие ajaxComplete вместо ajaxSuccess.

Ответы [ 2 ]

4 голосов
/ 09 января 2010

Вы можете использовать ajaxSuccess Подробнее здесь: http://www.slideshare.net/wildan.m/jquery-talk-to-server-with-ajax (после слайда 47)

1 голос
/ 09 января 2010

Используйте ajaxSuccess и, может быть, вы хотите запустить код при нажатии на ссылку?

HTML:

<a href="javascript:void(0);" class="runCode">Run code</a>

JS:

$(function() { // same as dom loaded
    $('a.runCode').click(function() {
        alert('whatever you want to do here');
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...