03 กันยายน, 2557

[jQuery] วิธีเช็กว่าการ "click" ที่ปุ่มมาจากการคลิกจริงๆ หรือจากสคริปต์ "trigger"



ในการเขียนเว็บ เราสามารถสั่ง jQuery ให้ทำให้เกิดอีเวนท์แทน user ได้โดยการสั่ง trigger
เช่นต้องการให้ปุ่มนี้โดนกดแต่ user ไม่ได้กดเอง เราก็สั่ง
$('button').trigger('click');
ได้เลย
แต่ว่าบางครั้งเราก็ต้องการรู้ว่าจริงๆ แล้วอีเวนท์การคลิก (รวมถึงอีเวนท์อื่นๆ ด้วย) มาจากการที่เราสั่ง trigger เองหรือมาจากการคลิกจริงๆ


นี่มันtigger ไม่ใช่trigger

originalEvent

javascript มี property ตัวหนึ่งเวลาเกิดอีเวนท์ใดๆ ก็ตามชื่อว่า originalEvent ซึ่งเราสามารถใช้เจ้านี่ในการเช็กได้ว่าตกลงอีเวนท์นี้มาจากการคลิกจริงหรือไม่

ตามโค้ดชุดข้างล่างนี่เลย
$('button').click(function(e){
    if( e.hasOwnProperty('originalEvent') ){
        // เป็นการคลิกจริงๆ จากuser
    }
    else{
       // เป็นการคลิกจากการสั่ง trigger
    }
});

ไม่มีความคิดเห็น:

แสดงความคิดเห็น