Действительно ли возможно создать и присоединить обратный вызов, который назвать каждый раз, когда запрос ajax завершается независимо от того, был ли вызов выполнен с помощью $.ajax
, $.post
, load
или какая-либо другая функция?
Править:
Решение, данное Nakul (использующий ajaxSuccess глобальное событие), почти идеально. Однако у меня есть проблема при использовании этого с load
функция. ajaxSuccess событие генерируется после того, как запрос завершился, но перед любым управлением DOM. Я хотел бы выполнить некоторый код после того, как DOM был изменен. Мое временное решение состоит в том, чтобы использовать setTimeout
и ожидайте нескольких миллисекунд, но я не думаю, что это было бы достаточно надежно для меня.
Таким образом, другой вопрос: как можно выполнить код после того, как DOM управляли load
функция?
РЕДАКТИРОВАНИЕ 2:
Мне удалось решить второй выпуск при помощи ajaxComplete события вместо ajaxSuccess.
Вы можете использовать ajaxSuccess Подробнее здесь: http://www.slideshare.net/wildan.m/jquery-talk-to-server-with-ajax (после слайда 47)
Используйте 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');
});
});