التابع ‎.ajaxStop()‎‎‎ في jQuery

من موسوعة حسوب


‎.ajaxStop( handler )‎

القيمة المعادة

كائن jQuery.

الوصف

يُستخدَم التابع ‎‎.ajaxStop()‎‎ في تسجيل مُعالِج الأحداث (Event handler) لاستدعائه عند اكتمال تنفيذ جميع طلبات Ajax، يُعدُّ هذا التّابع حدثًا من أحداث Ajax.

‎.ajaxStop( handler )‎

أضيفت في الإصدار: 1.0.

handler

يُمثِّل الدالة المطلوب استدعاؤها.

عندما يكتمل تنفيذ طلب Ajax، تتحقّق jQuery ما إذا كانت هناك طلبات Ajax أخرى، وإن لم يكن هناك أي طلب تُطلِق jQuery الحدث ajaxStop، وتُنفَّذ عندها كافّة مُعالجات الأحداث المُسجَّلة مع التّابع ‎.ajaxStop()‎.

يُطلَق الحدث ajaxStop أيضًا إن ألغي آخر طلب Ajax عن طريق إعادة false ضمن دالة الاستدعاء beforeSend.

لمشاهدة مثال عملي عن هذا التّابع نُجهِّز طلب بسيط لتحميل Ajax:

<button class="trigger">إطلاق مُعالِج الحدث</button>
<div class="result"></div> <!--تُعرَض هنا النتيجة-->
<div class="log"></div> <!--تُعرَض هنا رسالة السّجل-->

أرفِق مُعالِج الحدث (event handler) إلى أي عنصر:

$( document ).ajaxStop(function() {
 $( ".log" ).text( ".‏ajaxStop‏أُطلِق مُعالِج الحدث ‏" );
});

نفذ الآن طلب Ajax باستخدام أي تابع jQuery:

$( ".trigger" ).click(function() {
 $( ".result" ).load( "ajax/test.html" );
});

عندما يضغط المستخدم على العنصر الذي يمتلك الصنف trigger ويكتمل تنفيذ طلب Ajax، ستُعرَض رسالة السّجل.

ملاحظات إضافية

بدءًا من إصدار jQuery 1.9 أصبح إرفاق مُعالِجات الأحداث لأحداث Ajax العامة (jQuery global Ajax events) بالمستند إجباريًّا، بما في ذلك مُعالِجات الأحداث المُضافة عن طريق التّابع ‎.ajaxStop()‎.

إن استدعينا التابع ‎$.ajax()‎ أو ‎$.ajaxSetup()‎ مع تعيين الخيار global إلى القيمة false، فلن يُنفَّذ التّابع ‎.ajaxStop()‎.

أمثلة

إخفاء رسالة جارٍ التحميل بعد توقّف جميع طلبات Ajax:

$( document ).ajaxStop(function() {
 $( "#loading" ).hide();
});

مصادر