วิธี triggerHandler
วิธี triggerHandler ช่วยให้สามารถเรียกใช้
ตัวจัดการเหตุการณ์ทั้งหมดที่เชื่อมโยงกับองค์ประกอบ ได้
ทำงานคล้ายกับวิธี
trigger,
แต่มีความแตกต่างกัน:
ตัวจัดการเหตุการณ์จะทำงาน แต่เหตุการณ์มาตรฐาน
จะไม่ถูกเรียก ตัวอย่างเช่น
triggerHandler('submit'),
เมื่อทำงาน จะไม่เรียก submit
วิธี triggerHandler จะส่งผล
เฉพาะกับองค์ประกอบแรกในชุดเท่านั้น
เหตุการณ์ที่เรียกโดย triggerHandler
จะไม่ลอยขึ้นไปตามลำดับชั้นขององค์ประกอบ DOM
triggerHandler ไม่คืนค่าออบเจ็กต์ jQuery,
แต่จะคืนค่าที่ได้จากตัวจัดการที่ถูกเรียกล่าสุด
หากไม่มีตัวจัดการใดถูกเรียก จะคืนค่า undefined
ไวยากรณ์
ในฐานะพารามิเตอร์แรก เราสามารถ ส่งประเภทของเหตุการณ์ในรูปแบบสตริง พารามิเตอร์ที่สอง เป็นตัวเลือก สามารถเป็นอาร์เรย์หรือออบเจ็กต์ ที่มี พารามิเตอร์เพิ่มเติมเพื่อส่งให้กับ ตัวจัดการ:
$(selector).triggerHandler(eventType, [additionalParameters]);
สามารถส่งพารามิเตอร์แรกเป็นเหตุการณ์
ในรูปแบบออบเจ็กต์ jQuery.Event ได้:
$(selector).trigger(event, [additionalParameters]);
ตัวอย่าง
มาทำให้เมื่อกดปุ่ม
ที่มี #test1 อินพุตของเราได้รับโฟกัสและ
แสดงข้อความ 'Focused' ในคอนโซล กล่าวคือ
ทั้งฟังก์ชันตัวจัดการและ
เหตุการณ์โฟกัสจะทำงาน เมื่อกดปุ่มที่สอง
ที่มี #test2 จะมีเพียงฟังก์ชันตัวจัดการที่ทำงาน
แต่อินพุตจะไม่ได้รับโฟกัส:
<button id="test1">button1</button>
<button id="test2">button2</button>
<input type="text">
$('#test1').click(function() {
$('input').trigger('focus');
});
$('#test2').click(function() {
$('input').triggerHandler('focus');
});
$('input').focus(function() {
console.log('Focused')
});