deferred.done( doneCallbacks [, doneCallbacks ] )Возвращает: Deferred
Описание: Добавляет обработчики, которые вызываются, когда объект Deferred разрешен.
-
версия добавлена: 1.5deferred.done( doneCallbacks [, doneCallbacks ] )
Метод deferred.done() принимает один или несколько аргументов, каждый из которых может быть отдельной функцией или массивом функций. Когда Deferred разрешен, вызываются doneCallbacks. Обработчики выполняются в порядке их добавления. Так как deferred.done() возвращает объект deferred, к этому методу можно прицепить другие методы объекта deferred, включая дополнительные .done() методы. Когда Deferred разрешен, doneCallbacks выполняются с использованием аргументов, предоставленных методу resolve или resolveWith в порядке их добавления. Дополнительную информацию см. в документации для объекта Deferred.
Примеры:
Поскольку метод jQuery.get возвращает объект jqXHR, который происходит от объекта Deferred, мы можем добавить обработчик успеха, используя метод .done().
$.get( "test.php" ).done(function() {
alert( "$.get succeeded" );
}); Разрешить объект Deferred, когда пользователь нажимает на кнопку, вызывая несколько функций обратного вызова:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>deferred.done demo</title>
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
<button>Go</button>
<p>Ready...</p>
<script>
// 3 functions to call when the Deferred object is resolved
function fn1() {
$( "p" ).append( " 1 " );
}
function fn2() {
$( "p" ).append( " 2 " );
}
function fn3( n ) {
$( "p" ).append( n + " 3 " + n );
}
// Create a deferred object
var dfd = $.Deferred();
// Add handlers to be called when dfd is resolved
dfd
// .done() can take any number of functions or arrays of functions
.done( [ fn1, fn2 ], fn3, [ fn2, fn1 ] )
// We can chain done methods, too
.done(function( n ) {
$( "p" ).append( n + " we're done." );
});
// Resolve the Deferred object when the button is clicked
$( "button" ).on( "click", function() {
dfd.resolve( "and" );
});
</script>
</body>
</html>