2013-01-21 10 views
5

Ho cercato tra le domande StackOverflow, cercando di ottenere aiuto con un semplice ritardo di collegamento; Voglio metterlo intorno a un div, e non posso fare testa o croce degli esempi che ho trovato.Desidero ritardare un collegamento per un periodo di 500 con javascript

Finora, ho capito che ho bisogno di interrompere la funzione nativa di href, ma non so come farlo. Il codice è ancora molto estraneo a me. Aiuto?

+0

Cosa intendi con * "posticipa un collegamento" *? – VisioN

+1

Si intende un ritardo che si verifica quando l'utente _clicks_ su un collegamento prima che il browser passi alla pagina collegata? – mxgr

+0

Si prega di essere più specifici nella domanda. La maggior parte non ha molto senso. Alcuni esempi o snippet saranno utili –

risposta

10

impostare il proprio attributo href come href="javascript:delay('URL')" e JavaScript:

function delay (URL) { 
    setTimeout(function() { window.location = URL }, 500); 
} 
+0

Questa sarà una domanda davvero stupida, ma dove inserisco questo in modo che influenzi un div? – ammonhra

+1

Ohh, nel caso in cui questo è per un div, quindi renderlo

Click here to go to google in half a second
gurvinder372

+0

Oh aspetta, ho appena capito cosa fare. Grazie. – ammonhra

3

Se si vuole ritardare ogni link sulla tua pagina, è possibile farlo con jQuery come questo

$(function(){ 
    $("a").click(function(evt){ 
     var link = $(this).attr("href"); 
     setTimeout(function() { 
      window.location.href = link; 
     }, 500); 
    }); 
}); 
+3

Affinché questo funzioni, è necessario aggiungere evt.preventDefault(); all'inizio della tua funzione. –

+2

Questo non supporta 'target =" _ blank "', o qualsiasi altra impostazione 'target'. –

-1

Io lo uso per mantieni la funzione in attesa prima di continuare:

var wait_until = new Date().getTime() + 500; 
while (new Date().getTime() < wait_until) { 
    //Do nothing, wait 
}