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

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

‎.triggerHandler( eventType [, extraParameters ] )‎

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

يُعيد كائنًا من النوع Object.

الوصف

تنفيذ كافة معالجات الأحداث التي تتعلق على عنصرٍ لحدث.

‎.triggerHandler( eventType [, extraParameters ] )‎

أُضيف مع الإصدار: 1.2.

eventType

سلسلة نصية من النوع String تحتوي على نوع حدث JavaScript، مثل click أو submit .

extraParameters

معاملات إضافية لتمريرها إلى معالج الحدث وهي تكون من النوع Array أو PlainObject.

‎.triggerHandler( event [, extraParameters ] )‎

أُضيف مع الإصدار: 1.3.

event

كائن jQuery.Event من النوع Event.

extraParameters

معاملات إضافية لتمريرها إلى معالج الحدث وهي تكون من النوع Array أو PlainObject.

ينفذ ‎.triggerHandler( eventType )‎ جميع المعالجات المرتبطة بكائن jQuery لنوع الحدث. وينفذ أيضًا أي تابع استدعى التابع on{eventType}()‎‎ الموجود على العنصر. يشبه سلوكُ هذا التابع سلوكَ التابع ‎.trigger()‎‎ ، مع الاستثناءات التالية:

  • لن يستدعي التابعُ ‎.triggerHandler( "event" )‎ التابعَ ‎.event()‎‎ في العنصر الذي أطلق عليه. هذا يعني أن ‎.triggerHandler( "submit" )‎ في نموذج لن يستدعي التابع ‎.submit()‎‎ في النموذج.
  • بينما يعمل التابع ‎.trigger()‎‎ على جميع العناصر المطابقة من قِبل كائن jQuery ، يؤثر التابع ‎.triggerHandler()‎‎ فقط على العنصر المطابق الأول.
  • الأحداث التي أطلقها التابع ‎.triggerHandler()‎‎ تنتقل عبر تسلسل شجرة DOM إلى العناصر الأب؛ إذا لم يُتعامل معها مباشرة بواسطة العنصر الهدف ، فإنها لا تفعل شيئًا.
  • بدلاً من إعادة كائن jQuery (للسماح باستدعاء التوابع كسلسلة [chaining])، يعيد ‎.triggerHandler()‎‎ أي قيمة سبق وأن أُعيدت بواسطة المعالج الأخير الذي تسبب في تنفيذه. إذا لم يُطلق أي معالج، فإنه يُعيد القيمة undefined.

لمزيد من المعلومات حول هذا التابع، راجع صفحة توثيق التابع ‎.trigger()‎‎.

أمثلة

عند استدعاء ‎.triggerHandler()‎‎‎‎ في حدث التركيز focus؛ لن ينطلق الإجراء الافتراضي للتركيز للمتصفح ، لكن تنطلق فقط معالجات الحدث المرتبطة بحدث التركيز.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>triggerHandler مثال على التابع</title>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<button id="قديم">.trigger( "تركيز" )</button>
<button id="جديد">.triggerHandler( "تركيز" )</button><br><br>
 
<input type="text" value="للتركيز">
 
<script>
$( "#old" ).click(function() {
  $( "input" ).trigger( "focus" );
});
$( "#new" ).click(function() {
  $( "input" ).triggerHandler( "focus" );
});
$( "input" ).focus(function() {
  $( "<span>محل تركيز!</span>" ).appendTo( "body" ).fadeOut( 1000 );
});
</script>
 
</body>
</html>

مصادر