ก่อนอื่นการมี URL ในhref
นั้นดีที่สุดเพราะช่วยให้ผู้ใช้สามารถคัดลอกลิงก์เปิดในแท็บอื่น ฯลฯ
ในบางกรณี (เช่นไซต์ที่มีการเปลี่ยนแปลง HTML บ่อยครั้ง) มันไม่สามารถผูกลิงค์ทุกครั้งที่มีการอัพเดท
วิธีการผูกทั่วไป
ลิงก์ปกติ:
<a href="https://www.google.com/">Google<a/>
และสิ่งนี้สำหรับ JS:
$("a").click(function (e) {
e.preventDefault();
var href = $(this).attr("href");
window.open(href);
return false;
});
ประโยชน์ของวิธีนี้คือการแยกมาร์กอัปและลักษณะการทำงานที่สะอาดและไม่ต้องเรียกใช้ฟังก์ชันซ้ำในทุกลิงก์
ไม่มีวิธีผูกมัด
อย่างไรก็ตามหากคุณไม่ต้องการผูกทุกครั้งคุณสามารถใช้ onclick และส่งผ่านองค์ประกอบและเหตุการณ์เช่น:
<a href="https://www.google.com/" onclick="return Handler(this, event);">Google</a>
และนี่สำหรับ JS:
function Handler(self, e) {
e.preventDefault();
var href = $(self).attr("href");
window.open(href);
return false;
}
ข้อดีของวิธีนี้คือคุณสามารถโหลดลิงค์ใหม่ (เช่นผ่าน AJAX) ทุกครั้งที่คุณต้องการโดยไม่ต้องกังวลกับการผูกทุกครั้ง