การ binding event ใน KnockoutJS นั้นทำได้โดยใช้ data-bind="event: function(event) { ... }"
data-bind="event: function(event) { ... }
จะผูกฟังก์ชันให้กับองค์ประกอบ DOM ซึ่งจะทำงานเมื่อเหตุการณ์บางอย่างเกิดขึ้นกับองค์ประกอบ DOM
เหตุการณ์ที่คุณสามารถผูกได้นั้นมีมากมาย ตัวอย่างบางส่วน ได้แก่:
- click: เหตุการณ์นี้เกิดขึ้นเมื่อองค์ประกอบ DOM ถูกคลิก
- change: เหตุการณ์นี้เกิดขึ้นเมื่อค่าขององค์ประกอบ DOM เปลี่ยนแปลง
- focus: เหตุการณ์นี้เกิดขึ้นเมื่อองค์ประกอบ DOM อยู่ในโฟกัส
- blur: เหตุการณ์นี้เกิดขึ้นเมื่อองค์ประกอบ DOM ออกจากโฟกัส
- keydown: เหตุการณ์นี้เกิดขึ้นเมื่อปุ่มคีย์บอร์ดถูกกด
- keyup: เหตุการณ์นี้เกิดขึ้นเมื่อปุ่มคีย์บอร์ดถูกปล่อย
- keypress: เหตุการณ์นี้เกิดขึ้นเมื่อปุ่มคีย์บอร์ดถูกกดและปล่อย
- mouseenter: เหตุการณ์นี้เกิดขึ้นเมื่อเมาส์เข้าสู่องค์ประกอบ DOM
- mouseleave: เหตุการณ์นี้เกิดขึ้นเมื่อเมาส์ออกจากองค์ประกอบ DOM
- mousemove: เหตุการณ์นี้เกิดขึ้นเมื่อเมาส์เคลื่อนที่เหนือองค์ประกอบ DOM
- mouseup: เหตุการณ์นี้เกิดขึ้นเมื่อเมาส์ปล่อยปุ่มเมาส์
- mousedown: เหตุการณ์นี้เกิดขึ้นเมื่อเมาส์กดปุ่มเมาส์
- scroll: เหตุการณ์นี้เกิดขึ้นเมื่อองค์ประกอบ DOM ถูกเลื่อน
- resize: เหตุการณ์นี้เกิดขึ้นเมื่อองค์ประกอบ DOM ถูกปรับขนาด
ตัวอย่างเช่น:
1 | <button data-bind="click: function(event) { |
สิ่งนี้จะสร้างปุ่มใหม่และผูกฟังก์ชัน alert()
เข้ากับปุ่มนั้น เมื่อปุ่มถูกคลิก ฟังก์ชัน alert()
จะทำงานและแสดงข้อความ “Hello, world!”
คุณยังสามารถใช้ data-bind="event: function(event) { ... }
เพื่อผูกฟังก์ชันไปยังองค์ประกอบ DOM แบบไดนามิกได้
ตัวอย่างเช่น:
1 | <div data-bind="click: function(event) { |
สิ่งนี้จะสร้างองค์ประกอบ DOM ใหม่และผูกฟังก์ชัน alert()
เข้ากับองค์ประกอบ DOM นั้น เมื่อองค์ประกอบ DOM ถูกคลิก ฟังก์ชัน alert()
จะทำงานและแสดงข้อความที่องค์ประกอบ DOM แสดง
Here are some examples of how you can use event binding in KnockoutJS:
- You can use event binding to call a function when an event occurs:
1 | <button data-bind="click: function(event) { |
- You can use event binding to open a new window when an event occurs:
1 | <a href="https://www.google.com" data-bind="click: function(event) { |
- You can use event binding to change the value of a property when an event occurs:
1 | <input type="text" data-bind="value: name, click: function(event) { |
- You can use event binding to perform a complex operation when an event occurs:
1 | <div data-bind="click: function(event) { |
Event binding เป็นเครื่องมือที่ทรงพลังที่สามารถใช้เพื่อตอบสนองต่อเหตุการณ์ใน KnockoutJS
By using event binding, you can make your applications more interactive.