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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

‎.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>

مصادر