[Функция] deferred.done(doneCallbacks)
Раздел "Deferred"
Метод добавляет функцию обратного вызова при выполнении объекта Deferred
deferred.done(doneCallbacks)
1.5
doneCallbacks: функция или массив функций, запускаемая при выполнении объекта Deferred.
function () {
this // текущий DOM элемент
}
Метод deferred.done() вызывает для связанного объекта одну или несколько функций обратного вызова, функции выполняются в том порядке, в котором они указаны. Функции обратного вызова могут принимать аргументы, если Вы используете методы resolve(), resolveWith().
Пример:
Так как метод jQuery.get возвращает объект jqXHR, который обеспечен встроенным объектом Deferred, поэтому мы можем использовать метод deferred.done для создания функций обратного вызова для любого запроса.
"jQuery"
jQuery.get("test.php").done(
function(){ alert("jQuery.get запрос завершён успешно!"); }
);
Пример:
Дополнительный пример, в котором функция обратного вызова принимает текущий элемент для которого происходит анимация, установленная методом fadeIn().
"jQuery"
$(function() {
var dfd = $.Deferred();
$('#result').fadeIn(3000, dfd.resolve);
dfd.done(function(){
$('#result').text($(this).attr('id'));
});
});
"HTML"
<div id="result">Элемент для которого применяется анимация fadeIn</div>
"CSS"
#result {
display:none;
}
"Живой пример jQuery"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link href="http://test-drupal.ru/themes/slyweb/css/jqueryiframe.css"
rel="stylesheet" type="text/css"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(function() {
var dfd = $.Deferred();
$('#result').fadeIn(3000, dfd.resolve);
dfd.done(function(){
$('#result').text($(this).attr('id'));
});
});
});
</script>
</head>
<body class="iframe">
<div id="result">Элемент для которого применяется анимация fadeIn</div>
</body>
</html>
<style>
#result {
display:none;
}
</style>
Версия jQuery 1.4.2
Документ создан 2010-08-21