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