เมธอด one
เมธอด one ช่วยให้เพิ่มตัวจัดการ
เหตุการณ์ให้กับองค์ประกอบได้ หลังจากที่เหตุการณ์
ทำงานหนึ่งครั้ง - ตัวจัดการจะ
ถูกลบออกโดยอัตโนมัติ
ไวยากรณ์
นี่คือวิธีที่เราติดตัวจัดการเหตุการณ์เข้ากับองค์ประกอบ
พารามิเตอร์แรกส่งเป็นสตริง
ซึ่งเป็นหนึ่งเหตุการณ์หรือหลายเหตุการณ์คั่นด้วย
ช่องว่าง พารามิเตอร์ที่สอง - ส่งข้อมูลในรูปของวัตถุ JavaScript
ซึ่งจะถูกส่งไปยังตัวจัดการในคุณสมบัติ
event.data เมื่อเหตุการณ์เกิดขึ้น พารามิเตอร์ที่สอง
เป็นทางเลือก พารามิเตอร์ที่สามส่งฟังก์ชันตัวจัดการ
ซึ่งจะได้รับวัตถุเหตุการณ์ หรือส่ง false:
$(selector).one(events, [data], handler(event object));
สามารถส่งตัวกรองเลือกองค์ประกอบลูกเพิ่มเติม
เป็นพารามิเตอร์ที่สอง
พารามิเตอร์ที่สาม - ข้อมูลเพิ่มเติมซึ่งจะถูกส่ง
ไปยังตัวจัดการในคุณสมบัติ event.data เมื่อ
เหตุการณ์เกิดขึ้น พารามิเตอร์ที่สองและที่สาม
เป็นทางเลือก พารามิเตอร์ที่สี่ส่ง
ฟังก์ชันตัวจัดการ ซึ่งจะได้รับวัตถุเหตุการณ์
และพารามิเตอร์เพิ่มเติมทางเลือก หากแทนที่
ฟังก์ชันตัวจัดการด้วย false ฟังก์ชันจะเพียงแค่
คืนค่า false:
$(selector).one(events, [selector], [data], handler(event object));
สามารถใช้เมธอด one ในทางอื่นได้
โดยในพารามิเตอร์แรกจะส่ง
วัตถุ JavaScript โดยที่คีย์ - คือประเภทเหตุการณ์ และ
ค่า - คือฟังก์ชันตัวจัดการที่เราเพิ่มให้กับ
องค์ประกอบ:
$(selector).one({'event type': handler}, [selector], [data]);
หากเราไม่ส่งตัวเลือกเพิ่มเติม เหตุการณ์จะเกิดขึ้นบนองค์ประกอบที่เรา ติดตัวจัดการเข้าไป มิฉะนั้น - จะเกิดขึ้นบน องค์ประกอบลูก ซึ่งตรงกับ ตัวเลือกนั้น (เหตุการณ์ที่ถูกมอบหมาย)
ตัวอย่าง
ลองเมื่อคลิกที่ย่อหน้าแล้วแสดงข้อมูลที่
เราได้ส่งไปยังเมธอด one ในการคลิกครั้งต่อๆ ไป
จะไม่มีอะไรเกิดขึ้น ลองใช้
ฟังก์ชันตัวจัดการ testFunc
ที่เราได้สร้างขึ้น:
<p>click</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);