come indirizzare un collegamento con event.preventDefault?
-
28-10-2019 - |
Domanda
ho un collegamento con un gestore di clic qui.l'href è pieno di informazioni di cui ho bisogno.ma non voglio che il clic apra questo collegamento.quindi ho fatto event.preventDefault e funziona bene.Ma devo target="_top" se qualcuno fa clic sul collegamento.è possibile?
Soluzione 2
cambiato il event.preventDefault();
funzione a return false;
e ho fatto un'animazione html con scrollTop: $('html, body').animate({scrollTop:0});
ora il collegamento non segue l'href ma scorre verso l'alto
Altri suggerimenti
Se stai impedendo l'azione predefinita del link, lo prendo che stai facendo qualcos'altro. Se questo qualcos'altro prevede la modifica della posizione della finestra e si desidera modificare la posizione della finestra in alto, puoi usare window.top
per fare riferimento ad esso e quindi impostare la sua posizione tramite il location
Proprietà, ad esempio:
window.top.location = /* ... */;
Per esempio (Esempio dal vivo):
Html:
<a id="theLink" href="http://jsbin.com">This link</a>
says jsbin.com and doesn't have <code>target="_top"</code>,
but will actually go to stackoverflow.com and do it
in the top window. (Seems a bit evil.)
JavaScript:
jQuery(function($) {
$("#theLink").click(function(event) {
window.top.location = "http://stackoverflow.com";
return false;
});
});
... Ma questo solleva la questione del perché non lasciare che il link faccia il suo lavoro. :-)
O se stai cercando di aggiungere target="_top"
a un link che non ce l'ha quando viene cliccato, puoi fare:
var link = /* ...get the link element, e.g., $("#theLink") or whatever */;
$("#theLink").click(function() {
link.attr("target", "_top");
});
Nota che sono non impedire l'azione predefinita lì.
Non vorrei garantire che funzionerebbe necessariamente, meglio impostare l'attributo prima di fare clic sul collegamento.