jQuery Event ที่ใช้งานบ่อยๆ

jQuery มี Event Methods หลากหลายที่ช่วยให้การจัดการกับเหตุการณ์ (events) บนเว็บเพจง่ายขึ้น โดย Event Methods เหล่านี้จะทำให้เราสามารถกำหนดการทำงานเมื่อเกิดเหตุการณ์ต่าง ๆ เช่น เมื่อผู้ใช้คลิกเมาส์ กดแป้นพิมพ์ หรือทำการโต้ตอบอื่น ๆ

มาดูรายละเอียดของ Event Methods ที่สำคัญใน jQuery

1. .on()

.on() เป็นวิธีการหลักที่ใช้เพื่อจัดการกับหลายเหตุการณ์ในหลายองค์ประกอบ (elements) ใน jQuery มันสามารถใช้เพื่อจับ event หลายชนิดใน selector เดียว

การใช้งาน

$("selector").on("event", function(){
    // คำสั่งที่จะทำงานเมื่อเกิด event
});

ตัวอย่าง

$("#myButton").on("click", function(){
    alert("Button clicked!");
});

ในตัวอย่างนี้ เมื่อมีการคลิกปุ่มที่มี id ว่า myButton จะมีการแสดงข้อความแจ้งเตือนออกมา

2. .click()

ใช้สำหรับตรวจจับ event “คลิก” ของผู้ใช้กับ element นั้น ๆ

การใช้งาน

$("selector").click(function(){
    // คำสั่งที่จะทำงานเมื่อเกิดการคลิก
});

ตัวอย่าง

$("#myDiv").click(function(){
    $(this).hide(); // ซ่อน div เมื่อถูกคลิก
});

3. .dblclick()

ใช้เพื่อจัดการ event การคลิกเมาส์ 2 ครั้งติดกัน (double-click)

การใช้งาน

$("selector").dblclick(function(){
    // คำสั่งที่จะทำงานเมื่อ double-click
});

ตัวอย่าง

$("#myDiv").dblclick(function(){
    $(this).css("background-color", "blue"); // เปลี่ยนสีพื้นหลังเมื่อ double-click
});

4. .hover()

ใช้จัดการกับการเคลื่อนเมาส์เข้าและออกจากองค์ประกอบใดๆ

การใช้งาน

$("selector").hover(function(){
    // เมื่อเมาส์เลื่อนเข้า
}, function(){
    // เมื่อเมาส์เลื่อนออก
});

ตัวอย่าง

$("#myDiv").hover(function(){
    $(this).css("background-color", "yellow");
}, function(){
    $(this).css("background-color", "white");
});

5. .focus() และ .blur()

  • .focus() ใช้เมื่อ input field ได้รับ focus (เช่น การคลิกที่ input)
  • .blur() ใช้เมื่อ input field สูญเสีย focus

การใช้งาน

$("selector").focus(function(){
    // เมื่อองค์ประกอบได้รับ focus
});

$("selector").blur(function(){
    // เมื่อองค์ประกอบสูญเสีย focus
});

ตัวอย่าง

$("#myInput").focus(function(){
    $(this).css("background-color", "lightgreen");
});

$("#myInput").blur(function(){
    $(this).css("background-color", "");
});

6. .keydown() และ .keyup()

ใช้ตรวจจับ event เมื่อผู้ใช้กดหรือปล่อยแป้นพิมพ์

การใช้งาน

$("selector").keydown(function(event){
    // คำสั่งที่จะทำงานเมื่อกดแป้นพิมพ์
});

$("selector").keyup(function(event){
    // คำสั่งที่จะทำงานเมื่อปล่อยแป้นพิมพ์
});

ตัวอย่าง

$(document).keydown(function(event){
    alert("Key pressed: " + event.which);
});

ในตัวอย่างนี้ เมื่อใดที่มีการกดแป้นพิมพ์ จะแสดงค่า key code ของแป้นที่ถูกกดออกมา

7. .submit()

ใช้จับ event เมื่อฟอร์มถูกส่ง (form submission)

การใช้งาน

$("form").submit(function(event){
    event.preventDefault(); // หยุดการส่งฟอร์ม
    // คำสั่งที่จะทำงานเมื่อฟอร์มถูกส่ง
});

ตัวอย่าง

$("#myForm").submit(function(event){
    event.preventDefault(); // ป้องกันการส่งฟอร์ม
    alert("Form submitted!");
});

8. .resize()

ใช้สำหรับจัดการกับ event เมื่อขนาดของหน้าต่างเบราว์เซอร์เปลี่ยนแปลง

การใช้งาน

$(window).resize(function(){
    // คำสั่งที่จะทำงานเมื่อขนาดหน้าต่างเปลี่ยน
});

ตัวอย่าง

$(window).resize(function(){
    $("#myDiv").text("Window resized");
});

9. .scroll()

ใช้สำหรับตรวจจับการเลื่อนหน้าต่าง (scrolling)

การใช้งาน

$(window).scroll(function(){
    // คำสั่งที่จะทำงานเมื่อเกิดการเลื่อน
});

ตัวอย่าง

$(window).scroll(function(){
    $("#myDiv").text("You are scrolling!");
});

10. .mouseenter() และ .mouseleave()

ใช้จัดการเมื่อเมาส์เลื่อนเข้าหรือออกจากองค์ประกอบ

การใช้งาน

$("selector").mouseenter(function(){
    // คำสั่งเมื่อเมาส์เลื่อนเข้า
});

$("selector").mouseleave(function(){
    // คำสั่งเมื่อเมาส์เลื่อนออก
});

ตัวอย่าง

$("#myDiv").mouseenter(function(){
    $(this).css("background-color", "lightblue");
});

$("#myDiv").mouseleave(function(){
    $(this).css("background-color", "");
});

การจัดการหลาย event ในครั้งเดียว

เราสามารถจับ event หลาย ๆ ตัวด้วย .on() ได้ในครั้งเดียว

ตัวอย่าง

$("#myDiv").on({
    mouseenter: function(){
        $(this).css("background-color", "yellow");
    },
    mouseleave: function(){
        $(this).css("background-color", "");
    },
    click: function(){
        $(this).css("background-color", "green");
    }
});

ในตัวอย่างนี้ องค์ประกอบเดียวกัน (#myDiv) จะถูกจัดการด้วย event หลายชนิด (mouseenter, mouseleave, click) พร้อมกัน

สรุป

jQuery Event Methods ทำให้การจัดการเหตุการณ์ต่าง ๆ บนหน้าเว็บสะดวกและง่ายขึ้น ด้วยคำสั่งที่สั้นและมีประสิทธิภาพ Event Methods ที่กล่าวมาข้างต้นคือกลุ่มคำสั่งพื้นฐานที่ช่วยในการสร้างประสบการณ์โต้ตอบที่ดียิ่งขึ้นให้กับผู้ใช้บนหน้าเว็บของเรา

Leave a Reply