التابع .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>