تابع رد النداء ‎‎callbacks.lock()‎‎‎‎‎ في jQuery

من موسوعة حسوب
< jQuery‏ | callbacks
مراجعة 09:21، 24 يونيو 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - 'JQuery' ب'jQuery')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

تابع رد النداء ‎callbacks.lock()‎

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

ردود نداء (Callbacks).

الوصف

يُستخدَم تابع رد النداء ‎callbacks.lock()‎ في قفل قائمة ردود النداء بوضعها الحالي.

‎callbacks.lock()‎

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

لا يقبل هذا التّابع أي وسائط.

يُعيد هذا التابع كائن ردود النداء المُرفَق إليه (this).

إن كان كائن ردود النداء (Callbacks object) قد أُنشِئ عن طريق العَلَم memory كوسيط له، فيُمكِن إضافة وإطلاق دوال إضافيّة بعد قفل قائمة ردود النداء.

أمثلة

استخدام ‎callbacks.lock()‎ في قفل قائمة ردود النداء لتجنّب حدوث تغيّرات أخرى لحالة القائمة:

// دالة تسجيل بسيطة تُضاف إلى قائمة ردود النداء
var foo = function( value ) {
  console.log( "foo:" + value );
};
 
var callbacks = $.Callbacks();
 
// إضافة دالة التسجيل إلى قائمة ردود النداء
callbacks.add( foo );
 
// إطلاق العناصر الموجودة في القائمة عن طريق تمرير اسمها كوسيط
callbacks.fire( "hello" );
// ينتج عنه "foo: hello"
 
// قفل قائمة ردود النداء
callbacks.lock();
 
// محاولة إطلاق العناصر مرة أخرى
callbacks.fire( "world" );
 
// بما أنّ القائمة مقفولة فلن تُستدعى العناصر 
// وبالتالي لن تُعرَض رسالة السجل "foo: world"

استخدام ‎callbacks.lock()‎ في قفل قائمة ردود النداء مع استخدام العَلَم memory، ومن ثمّ متابعة استخدام القائمة:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>callbacks.lock مثال عن</title>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<div id="log"></div>
 
<script>
// دالة بسيطة لتسجيل النتائج
var log = function( value ) {
  $( "#log" ).append( "<p>" + value + "</p>" );
};
 
// دالتين لإضافتهما إلى قائمة ردود النداء
var foo = function( value ) {
  log( "foo: " + value );
};
var bar = function( value ) {
  log( "bar: " + value );
};
 
// إنشاء كائن ردود النداء باستخدام العلم memory
var callbacks = $.Callbacks( "memory" );
 
// إضافة تابع التسجيل foo إلى القائمة
callbacks.add( foo );
 
// إطلاق العناصر الموجودة في القائمة عن طريق كتابة اسمها كوسيط
callbacks.fire( "hello" );
// ينتج عنه "foo: hello"
 
// إقفال قائمة ردود النداء
callbacks.lock();
 
// محاولة إطلاق العناصر مرة أخرى
callbacks.fire( "world" );
// بما أن القائمة مقفلة فلم تستدعى العناصر
// وبالتالي لن تُعرَض رسالة السجل "foo: world"
 
// إضافة الدالة foo إلى قائمة ردود النداء مرة أخرى
callbacks.add( foo );
 
// محاولة إطلاق العناصر مرة أخرى
callbacks.fire( "silentArgument" );
// ينتج عنه "foo: hello" لأن قيمة الوسط قد خُزِّنت في الذاكرة
 
// إضافة الدالة bar إلى قائمة ردود النداء
callbacks.add( bar );
 
callbacks.fire( "youHadMeAtHello" );
// ينتج عنه "bar: hello" لأنّ القائمة لا تزال مقفلة
// وقيمة الوسيط لا تزال مخزنة في الذاكرة
</script>
 
</body>
</html>

مصادر