เมื่อฉันต้องการป้องกันตัวจัดการเหตุการณ์อื่นไม่ให้ดำเนินการหลังจากเหตุการณ์บางอย่างเกิดขึ้นฉันสามารถใช้หนึ่งในสองเทคนิค ฉันจะใช้ jQuery ในตัวอย่าง แต่สิ่งนี้ใช้ได้กับ plain-JS ด้วย:
1 event.preventDefault()
$('a').click(function (e) {
// custom handling here
e.preventDefault();
});
2 return false
$('a').click(function () {
// custom handling here
return false;
});
มีความแตกต่างอย่างมีนัยสำคัญระหว่างสองวิธีในการหยุดการเผยแพร่เหตุการณ์หรือไม่?
สำหรับฉันนั้นreturn false;
ง่ายกว่าสั้นกว่าและอาจเกิดข้อผิดพลาดน้อยกว่าการใช้วิธีการ ด้วยวิธีการนี้คุณต้องจำไว้เกี่ยวกับการใส่ปลอกวงเล็บที่ถูกต้องและอื่น ๆ
นอกจากนี้ฉันต้องกำหนดพารามิเตอร์แรกในการโทรกลับเพื่อให้สามารถเรียกวิธีการ อาจมีสาเหตุบางอย่างที่ฉันควรหลีกเลี่ยงการทำเช่นนี้และใช้preventDefault
แทน วิธีที่ดีกว่าคืออะไร
preventDefault
ไม่ได้ป้องกัน handers อื่นจากการดำเนินการ นั่นคือสิ่งที่stopImmediatePropagation
มีไว้เพื่อ