Primero, tener la URL href
es mejor porque permite a los usuarios copiar enlaces, abrirlos en otra pestaña, etc.
En algunos casos (por ejemplo, sitios con cambios frecuentes de HTML) no es práctico vincular enlaces cada vez que hay una actualización.
Método de enlace típico
Enlace normal:
<a href="https://www.google.com/">Google<a/>
Y algo así para JS:
$("a").click(function (e) {
e.preventDefault();
var href = $(this).attr("href");
window.open(href);
return false;
});
Los beneficios de este método son la separación limpia de marcado y comportamiento y no tiene que repetir las llamadas a funciones en cada enlace.
Método sin enlace
Sin embargo, si no desea vincular cada vez, puede usar onclick y pasar el elemento y el evento, por ejemplo:
<a href="https://www.google.com/" onclick="return Handler(this, event);">Google</a>
Y esto para JS:
function Handler(self, e) {
e.preventDefault();
var href = $(self).attr("href");
window.open(href);
return false;
}
El beneficio de este método es que puede cargar nuevos enlaces (por ejemplo, a través de AJAX) siempre que lo desee sin tener que preocuparse por el enlace cada vez.