Innanzitutto, href
è meglio avere l'URL perché consente agli utenti di copiare collegamenti, aprire in un'altra scheda, ecc.
In alcuni casi (ad es. Siti con frequenti modifiche HTML) non è pratico associare i collegamenti ogni volta che si verifica un aggiornamento.
Metodo di associazione tipico
Collegamento normale:
<a href="https://www.google.com/">Google<a/>
E qualcosa del genere per JS:
$("a").click(function (e) {
e.preventDefault();
var href = $(this).attr("href");
window.open(href);
return false;
});
I vantaggi di questo metodo sono la netta separazione tra markup e comportamento e non devono ripetere le chiamate di funzione in ogni collegamento.
Metodo No Bind
Se non vuoi vincolarti ogni volta, tuttavia, puoi usare onclick e passare l'elemento e l'evento, ad esempio:
<a href="https://www.google.com/" onclick="return Handler(this, event);">Google</a>
E questo per JS:
function Handler(self, e) {
e.preventDefault();
var href = $(self).attr("href");
window.open(href);
return false;
}
Il vantaggio di questo metodo è che puoi caricare nuovi collegamenti (ad es. Tramite AJAX) ogni volta che vuoi senza doversi preoccupare di rilegare ogni volta.