Đầu tiên, có url trong href
là tốt nhất vì nó cho phép người dùng sao chép liên kết, mở trong một tab khác, v.v.
Trong một số trường hợp (ví dụ: các trang web có thay đổi HTML thường xuyên), việc liên kết các liên kết mỗi khi có cập nhật là không thực tế.
Phương pháp ràng buộc điển hình
Liên kết bình thường:
<a href="https://www.google.com/">Google<a/>
Và một cái gì đó như thế này cho JS:
$("a").click(function (e) {
e.preventDefault();
var href = $(this).attr("href");
window.open(href);
return false;
});
Lợi ích của phương pháp này là phân tách rõ ràng đánh dấu và hành vi và không phải lặp lại các lệnh gọi hàm trong mỗi liên kết.
Phương pháp không ràng buộc
Tuy nhiên, nếu bạn không muốn liên kết mọi lúc, bạn có thể sử dụng onclick và truyền vào phần tử và sự kiện, ví dụ:
<a href="https://www.google.com/" onclick="return Handler(this, event);">Google</a>
Và cái này cho JS:
function Handler(self, e) {
e.preventDefault();
var href = $(self).attr("href");
window.open(href);
return false;
}
Lợi ích của phương pháp này là bạn có thể tải các liên kết mới (ví dụ qua AJAX) bất cứ khi nào bạn muốn mà không phải lo lắng về việc ràng buộc mỗi lần.