الفرق بين المراجعتين لصفحة: «jQuery/deferred/done»
Khaled-yassin (نقاش | مساهمات) |
ط استبدال النص - 'jQuery/jQuery.get' ب'jQuery/jQuery/get' |
||
(5 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 6: | سطر 6: | ||
=== الوصف === | === الوصف === | ||
يُضيف هذا التابع | يُضيف هذا التابع مُعالجات تستدعى عند قبول الكائن المؤجل Deferred. | ||
=== <code>deferred.done( doneCallbacks [, doneCallbacks ] )</code> === | === <code>deferred.done( doneCallbacks [, doneCallbacks ] )</code> === | ||
أُضيف مع الإصدار: [http://api.jquery.com/category/version/1.5/ 1.5] | أُضيف مع الإصدار: [http://api.jquery.com/category/version/1.5/ 1.5]. | ||
==== <code>doneCallbacks</code> ==== | ==== <code>doneCallbacks</code> ==== | ||
هو دالة، أو مصفوفة دوال، تُستدعى عند | هو دالة، أو مصفوفة دوال، تُستدعى عند قبول الكائن المؤجل Deferred، وهو دالة <code>[[JavaScript/Function|Function()]]</code>. | ||
==== <code>doneCallbacks</code> ==== | ==== <code>doneCallbacks</code> ==== | ||
هو دالة اختيارية إضافية، أو مصفوفة دوال، تُستدعى عند | هو دالة اختيارية إضافية، أو مصفوفة دوال، تُستدعى عند قبول الكائن المؤجل Deferred، وهو دالة <code>[[JavaScript/Function|Function()]]</code>. | ||
يقبل التابع <code>deferred.done()</code> وسيطًا واحدًا أو أكثر، وكلها يمكن أن تكون إما دالة مفردة أو مجموعة من الدوال. عندما يتم | يقبل التابع <code>deferred.done()</code> وسيطًا واحدًا أو أكثر، وكلها يمكن أن تكون إما دالة مفردة أو مجموعة من الدوال. عندما يتم قبول الكائن المؤجل Deferred، فتستدعى <code>doneCallbacks</code>. تُنفذ دوال رد النداء بالترتيب الذي أُضيفَت به. | ||
لمّا كانت <code>deferred.done()</code> تُعيد الكائن المؤجل Deferred، يمكن تنفيذ التوابع الأخرى للكائن المؤجل كسلسلة (chain)، بما في ذلك توابع <code>.done()</code> الإضافية. | |||
عند قبول الكائن المؤجل Deferred، ستُنفَّذ <code>doneCallbacks</code> باستخدام الوسائط التي مررناها للتوابع <code>[[jQuery/deferred/resolve|resolve]]</code> أو <code>[[jQuery/deferred/resolveWith|resolveWith]]</code> بالترتيب الذي أُضيفت به. لمزيد من المعلومات، راجع توثيق الكائن <code>[[jQuery/deferred|Deferred]]</code>. | |||
=== أمثلة === | === أمثلة === | ||
لمّا كان التابع <code>[[jQuery/jQuery/get|jQuery.get]]</code> يُعيد كائن <code>jqXHR</code>، وهو مشتق من الكائن Deferred، يمكننا ربط رد نداء بالنجاح باستخدام التابع <code>.done()</code>.<syntaxhighlight lang="jquery"> | |||
$.get( "test.php" ).done(function() { | $.get( "test.php" ).done(function() { | ||
alert( "$.get succeeded" ); | alert( "$.get succeeded" ); | ||
}); | }); | ||
</syntaxhighlight> | </syntaxhighlight>سيُقبَل الكائن Deferred عند نقر المستخدم على زر، مما يؤدي إلى تشغيل عدد من دوال رد النداء:<syntaxhighlight lang="html"> | ||
<!doctype html> | <!doctype html> | ||
<html lang="en"> | <html lang="en"> | ||
سطر 38: | سطر 42: | ||
<script> | <script> | ||
// 3 | // استدعاء 3 دوال عند قبول الكائن المؤجل | ||
function fn1() { | function fn1() { | ||
$( "p" ).append( " 1 " ); | $( "p" ).append( " 1 " ); | ||
سطر 49: | سطر 53: | ||
} | } | ||
// | // إحداث كائن مؤجل | ||
var dfd = $.Deferred(); | var dfd = $.Deferred(); | ||
// | // إضافة معالجات تُستدعى عند قبول dfd | ||
dfd | dfd | ||
// .done() | // .done () يمكن أن تتخذ أي عدد من الدوال أو مصفوفات من الدوال | ||
.done( [ fn1, fn2 ], fn3, [ fn2, fn1 ] ) | .done( [ fn1, fn2 ], fn3, [ fn2, fn1 ] ) | ||
// | // يمكن أيضا وضع التوابع في سلسلة | ||
.done(function( n ) { | .done(function( n ) { | ||
$( "p" ).append( n + " we're done." ); | $( "p" ).append( n + " we're done." ); | ||
}); | }); | ||
// | // قبول الكائن المؤجل عند نقر الزر | ||
$( "button" ).on( "click", function() { | $( "button" ).on( "click", function() { | ||
dfd.resolve( "and" ); | dfd.resolve( "and" ); | ||
سطر 72: | سطر 76: | ||
== مصادر == | == مصادر == | ||
* [http://api.jquery.com/deferred.done/ صفحة التابع deferred.done() في توثيق jQuery الرسمي]. | * [http://api.jquery.com/deferred.done/ صفحة التابع deferred.done() في توثيق jQuery الرسمي]. | ||
[[تصنيف:jQuery]] | [[تصنيف:jQuery]] | ||
[[تصنيف:jQuery Method]] | [[تصنيف:jQuery Method]] | ||
[[تصنيف:jQuery | [[تصنيف:jQuery Deferred Object]] |
المراجعة الحالية بتاريخ 11:02، 1 يوليو 2018
deferred.done( doneCallbacks [, doneCallbacks ] )
القيمة المعادة
تُعيد كائنًا من النوع Deferred.
الوصف
يُضيف هذا التابع مُعالجات تستدعى عند قبول الكائن المؤجل Deferred.
deferred.done( doneCallbacks [, doneCallbacks ] )
أُضيف مع الإصدار: 1.5.
doneCallbacks
هو دالة، أو مصفوفة دوال، تُستدعى عند قبول الكائن المؤجل Deferred، وهو دالة Function()
.
doneCallbacks
هو دالة اختيارية إضافية، أو مصفوفة دوال، تُستدعى عند قبول الكائن المؤجل Deferred، وهو دالة Function()
.
يقبل التابع deferred.done()
وسيطًا واحدًا أو أكثر، وكلها يمكن أن تكون إما دالة مفردة أو مجموعة من الدوال. عندما يتم قبول الكائن المؤجل Deferred، فتستدعى doneCallbacks
. تُنفذ دوال رد النداء بالترتيب الذي أُضيفَت به.
لمّا كانت deferred.done()
تُعيد الكائن المؤجل Deferred، يمكن تنفيذ التوابع الأخرى للكائن المؤجل كسلسلة (chain)، بما في ذلك توابع .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-1.10.2.js"></script>
</head>
<body>
<button>Go</button>
<p>Ready...</p>
<script>
// استدعاء 3 دوال عند قبول الكائن المؤجل
function fn1() {
$( "p" ).append( " 1 " );
}
function fn2() {
$( "p" ).append( " 2 " );
}
function fn3( n ) {
$( "p" ).append( n + " 3 " + n );
}
// إحداث كائن مؤجل
var dfd = $.Deferred();
// إضافة معالجات تُستدعى عند قبول dfd
dfd
// .done () يمكن أن تتخذ أي عدد من الدوال أو مصفوفات من الدوال
.done( [ fn1, fn2 ], fn3, [ fn2, fn1 ] )
// يمكن أيضا وضع التوابع في سلسلة
.done(function( n ) {
$( "p" ).append( n + " we're done." );
});
// قبول الكائن المؤجل عند نقر الزر
$( "button" ).on( "click", function() {
dfd.resolve( "and" );
});
</script>
</body>
</html>